@antelopejs/dms 0.9.1 → 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 (1212) hide show
  1. package/CHANGELOG.md +73 -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/implementations/dms-auth/index.js +1 -1
  14. package/dist/implementations/dms-auth/index.js.map +1 -1
  15. package/dist/index.js +4 -0
  16. package/dist/index.js.map +1 -1
  17. package/dist/pages/public/preview/block-types.d.ts +7 -0
  18. package/dist/pages/public/preview/block-types.js +19 -0
  19. package/dist/pages/public/preview/block-types.js.map +1 -0
  20. package/dist/pages/public/preview/index.d.ts +10 -0
  21. package/dist/pages/public/preview/index.js +44 -0
  22. package/dist/pages/public/preview/index.js.map +1 -0
  23. package/dist/routes/block-preview.d.ts +8 -0
  24. package/dist/routes/block-preview.js +32 -0
  25. package/dist/routes/block-preview.js.map +1 -0
  26. package/dist/routes/index.d.ts +1 -0
  27. package/dist/routes/index.js +1 -0
  28. package/dist/routes/index.js.map +1 -1
  29. package/dist/utils/user-activity.d.ts +1 -1
  30. package/dist/utils/user-activity.js +6 -3
  31. package/dist/utils/user-activity.js.map +1 -1
  32. package/frontend-vue/dms.frontend.ts +4 -2
  33. package/frontend-vue/layers/dms-core/app/composables/user/useUserRegionalPreferences.ts +4 -1
  34. package/frontend-vue/layers/dms-core/app/types/menu.ts +3 -2
  35. package/frontend-vue/layers/dms-layout/app/assets/css/main.css +5 -5
  36. package/frontend-vue/layers/dms-layout/app/composables/page/usePageComponentPreload.ts +8 -3
  37. package/frontend-vue/layers/dms-layout/app/custom-layouts/PreviewLayout.vue +34 -0
  38. package/frontend-vue/layers/dms-layout/app/plugins/font-preload.ts +18 -16
  39. package/frontend-vue/layers/dms-layout/i18n/locales/layout-en-GB.json +3 -0
  40. package/frontend-vue/layers/dms-layout/i18n/locales/layout-fr-FR.json +3 -0
  41. package/frontend-vue/layers/dms-onboarding/app/middleware/onboarding.global.ts +4 -0
  42. package/frontend-vue/layers/dms-ui/app/build/components/block-preview/BlockPreviewIssue.vue +25 -0
  43. package/frontend-vue/layers/dms-ui/app/build/components/sortable/SortableList.vue +144 -0
  44. package/frontend-vue/layers/dms-ui/app/build/components/table/MenuColumns.vue +23 -21
  45. package/frontend-vue/layers/dms-ui/app/build/composables/block-preview/useBlockPreviewEmbed.ts +123 -0
  46. package/frontend-vue/layers/dms-ui/app/build/composables/blocks/useRefreshTriggers.ts +23 -6
  47. package/frontend-vue/layers/dms-ui/app/build/composables/table-view/useTableRows.ts +81 -3
  48. package/frontend-vue/layers/dms-ui/app/build/utils/blockPreview.ts +432 -0
  49. package/frontend-vue/layers/dms-ui/app/components/block-preview/BlockPreview.vue +172 -0
  50. package/frontend-vue/layers/dms-ui/app/components/table-view/KanbanBoard.vue +17 -15
  51. package/frontend-vue/layers/dms-ui/app/components/table-view/TableView.vue +1 -4
  52. package/frontend-vue/layers/dms-ui/app/composables/chart/useChartFetch.ts +47 -9
  53. package/frontend-vue/layers/dms-ui/app/composables/form/useForm.ts +4 -1
  54. package/frontend-vue/layers/dms-ui/i18n/locales/ui-en-GB.json +8 -0
  55. package/frontend-vue/layers/dms-ui/i18n/locales/ui-fr-FR.json +8 -0
  56. package/frontend-vue/package.json +5 -4
  57. package/package.json +44 -17
  58. package/skills/dms/REFERENCE.md +21 -19
  59. package/skills/dms/SKILL.md +64 -138
  60. package/skills/dms-auth/SKILL.md +4 -1
  61. package/skills/dms-best-practices/REFERENCE.md +93 -0
  62. package/skills/dms-best-practices/SKILL.md +77 -0
  63. package/skills/dms-module/REFERENCE.md +7 -5
  64. package/skills/dms-module/SKILL.md +9 -3
  65. package/skills/dms-pages/REFERENCE.md +112 -26
  66. package/skills/dms-pages/SKILL.md +12 -11
  67. package/skills/dms-project/DEV-SERVERS.md +74 -0
  68. package/skills/dms-project/SKILL.md +102 -14
  69. package/dist/test/antelope.test.d.ts +0 -2
  70. package/dist/test/antelope.test.js +0 -148
  71. package/dist/test/antelope.test.js.map +0 -1
  72. package/dist/test/api-endpoint/index.d.ts +0 -5
  73. package/dist/test/api-endpoint/index.js +0 -8
  74. package/dist/test/api-endpoint/index.js.map +0 -1
  75. package/dist/test/attachment-host/archive.d.ts +0 -58
  76. package/dist/test/attachment-host/archive.js +0 -79
  77. package/dist/test/attachment-host/archive.js.map +0 -1
  78. package/dist/test/attachment-host/capabilities.d.ts +0 -109
  79. package/dist/test/attachment-host/capabilities.js +0 -252
  80. package/dist/test/attachment-host/capabilities.js.map +0 -1
  81. package/dist/test/attachment-host/derived.d.ts +0 -74
  82. package/dist/test/attachment-host/derived.js +0 -96
  83. package/dist/test/attachment-host/derived.js.map +0 -1
  84. package/dist/test/attachment-host/index.d.ts +0 -4
  85. package/dist/test/attachment-host/index.js +0 -7
  86. package/dist/test/attachment-host/index.js.map +0 -1
  87. package/dist/test/attachment-host/native.d.ts +0 -39
  88. package/dist/test/attachment-host/native.js +0 -217
  89. package/dist/test/attachment-host/native.js.map +0 -1
  90. package/dist/test/helpers/attachments.d.ts +0 -18
  91. package/dist/test/helpers/attachments.js +0 -57
  92. package/dist/test/helpers/attachments.js.map +0 -1
  93. package/dist/test/helpers/auth.d.ts +0 -22
  94. package/dist/test/helpers/auth.js +0 -57
  95. package/dist/test/helpers/auth.js.map +0 -1
  96. package/dist/test/helpers/db.d.ts +0 -3
  97. package/dist/test/helpers/db.js +0 -69
  98. package/dist/test/helpers/db.js.map +0 -1
  99. package/dist/test/helpers/derived-controller.d.ts +0 -12
  100. package/dist/test/helpers/derived-controller.js +0 -20
  101. package/dist/test/helpers/derived-controller.js.map +0 -1
  102. package/dist/test/helpers/emails.d.ts +0 -10
  103. package/dist/test/helpers/emails.js +0 -36
  104. package/dist/test/helpers/emails.js.map +0 -1
  105. package/dist/test/helpers/fixtures.d.ts +0 -22
  106. package/dist/test/helpers/fixtures.js +0 -61
  107. package/dist/test/helpers/fixtures.js.map +0 -1
  108. package/dist/test/helpers/http.d.ts +0 -4
  109. package/dist/test/helpers/http.js +0 -34
  110. package/dist/test/helpers/http.js.map +0 -1
  111. package/dist/test/helpers/logging.d.ts +0 -6
  112. package/dist/test/helpers/logging.js +0 -26
  113. package/dist/test/helpers/logging.js.map +0 -1
  114. package/dist/test/helpers/page-access.d.ts +0 -17
  115. package/dist/test/helpers/page-access.js +0 -49
  116. package/dist/test/helpers/page-access.js.map +0 -1
  117. package/dist/test/helpers/reload-host.d.ts +0 -14
  118. package/dist/test/helpers/reload-host.js +0 -40
  119. package/dist/test/helpers/reload-host.js.map +0 -1
  120. package/dist/test/integration/account-deletion.test.d.ts +0 -1
  121. package/dist/test/integration/account-deletion.test.js +0 -84
  122. package/dist/test/integration/account-deletion.test.js.map +0 -1
  123. package/dist/test/integration/auth/auth-key-rotation.test.d.ts +0 -1
  124. package/dist/test/integration/auth/auth-key-rotation.test.js +0 -78
  125. package/dist/test/integration/auth/auth-key-rotation.test.js.map +0 -1
  126. package/dist/test/integration/auth/client-ip.test.d.ts +0 -1
  127. package/dist/test/integration/auth/client-ip.test.js +0 -14
  128. package/dist/test/integration/auth/client-ip.test.js.map +0 -1
  129. package/dist/test/integration/auth/current-password.test.d.ts +0 -1
  130. package/dist/test/integration/auth/current-password.test.js +0 -66
  131. package/dist/test/integration/auth/current-password.test.js.map +0 -1
  132. package/dist/test/integration/auth/login-throttle.test.d.ts +0 -1
  133. package/dist/test/integration/auth/login-throttle.test.js +0 -88
  134. package/dist/test/integration/auth/login-throttle.test.js.map +0 -1
  135. package/dist/test/integration/auth/password-reset.test.d.ts +0 -1
  136. package/dist/test/integration/auth/password-reset.test.js +0 -126
  137. package/dist/test/integration/auth/password-reset.test.js.map +0 -1
  138. package/dist/test/integration/auth/session-revocation.test.d.ts +0 -1
  139. package/dist/test/integration/auth/session-revocation.test.js +0 -46
  140. package/dist/test/integration/auth/session-revocation.test.js.map +0 -1
  141. package/dist/test/integration/auth/sign-in-country.test.d.ts +0 -1
  142. package/dist/test/integration/auth/sign-in-country.test.js +0 -76
  143. package/dist/test/integration/auth/sign-in-country.test.js.map +0 -1
  144. package/dist/test/integration/auth/two-factor-codes.test.d.ts +0 -1
  145. package/dist/test/integration/auth/two-factor-codes.test.js +0 -338
  146. package/dist/test/integration/auth/two-factor-codes.test.js.map +0 -1
  147. package/dist/test/integration/auth/two-factor-password.test.d.ts +0 -1
  148. package/dist/test/integration/auth/two-factor-password.test.js +0 -45
  149. package/dist/test/integration/auth/two-factor-password.test.js.map +0 -1
  150. package/dist/test/integration/auth/two-factor-token.test.d.ts +0 -1
  151. package/dist/test/integration/auth/two-factor-token.test.js +0 -92
  152. package/dist/test/integration/auth/two-factor-token.test.js.map +0 -1
  153. package/dist/test/integration/derived-controller.test.d.ts +0 -1
  154. package/dist/test/integration/derived-controller.test.js +0 -105
  155. package/dist/test/integration/derived-controller.test.js.map +0 -1
  156. package/dist/test/integration/email-change.test.d.ts +0 -1
  157. package/dist/test/integration/email-change.test.js +0 -137
  158. package/dist/test/integration/email-change.test.js.map +0 -1
  159. package/dist/test/integration/export-cleanup.test.d.ts +0 -1
  160. package/dist/test/integration/export-cleanup.test.js +0 -144
  161. package/dist/test/integration/export-cleanup.test.js.map +0 -1
  162. package/dist/test/integration/files/component-file-retries.test.d.ts +0 -1
  163. package/dist/test/integration/files/component-file-retries.test.js +0 -219
  164. package/dist/test/integration/files/component-file-retries.test.js.map +0 -1
  165. package/dist/test/integration/files/component-files.test.d.ts +0 -1
  166. package/dist/test/integration/files/component-files.test.js +0 -264
  167. package/dist/test/integration/files/component-files.test.js.map +0 -1
  168. package/dist/test/integration/files/field-constraints.test.d.ts +0 -1
  169. package/dist/test/integration/files/field-constraints.test.js +0 -100
  170. package/dist/test/integration/files/field-constraints.test.js.map +0 -1
  171. package/dist/test/integration/files/page-mode-form-files.test.d.ts +0 -1
  172. package/dist/test/integration/files/page-mode-form-files.test.js +0 -114
  173. package/dist/test/integration/files/page-mode-form-files.test.js.map +0 -1
  174. package/dist/test/integration/files/resource-form-files.test.d.ts +0 -1
  175. package/dist/test/integration/files/resource-form-files.test.js +0 -121
  176. package/dist/test/integration/files/resource-form-files.test.js.map +0 -1
  177. package/dist/test/integration/files/shared-controller-files.test.d.ts +0 -1
  178. package/dist/test/integration/files/shared-controller-files.test.js +0 -146
  179. package/dist/test/integration/files/shared-controller-files.test.js.map +0 -1
  180. package/dist/test/integration/files/sign-upload-token.test.d.ts +0 -1
  181. package/dist/test/integration/files/sign-upload-token.test.js +0 -16
  182. package/dist/test/integration/files/sign-upload-token.test.js.map +0 -1
  183. package/dist/test/integration/files/upload.test.d.ts +0 -1
  184. package/dist/test/integration/files/upload.test.js +0 -114
  185. package/dist/test/integration/files/upload.test.js.map +0 -1
  186. package/dist/test/integration/frontend-endpoints.test.d.ts +0 -1
  187. package/dist/test/integration/frontend-endpoints.test.js +0 -132
  188. package/dist/test/integration/frontend-endpoints.test.js.map +0 -1
  189. package/dist/test/integration/invite-extension-edit.test.d.ts +0 -1
  190. package/dist/test/integration/invite-extension-edit.test.js +0 -121
  191. package/dist/test/integration/invite-extension-edit.test.js.map +0 -1
  192. package/dist/test/integration/invite-link-status.test.d.ts +0 -1
  193. package/dist/test/integration/invite-link-status.test.js +0 -110
  194. package/dist/test/integration/invite-link-status.test.js.map +0 -1
  195. package/dist/test/integration/invite-resolution.test.d.ts +0 -1
  196. package/dist/test/integration/invite-resolution.test.js +0 -433
  197. package/dist/test/integration/invite-resolution.test.js.map +0 -1
  198. package/dist/test/integration/member-change-notifications.test.d.ts +0 -1
  199. package/dist/test/integration/member-change-notifications.test.js +0 -52
  200. package/dist/test/integration/member-change-notifications.test.js.map +0 -1
  201. package/dist/test/integration/member-settings-access.test.d.ts +0 -1
  202. package/dist/test/integration/member-settings-access.test.js +0 -118
  203. package/dist/test/integration/member-settings-access.test.js.map +0 -1
  204. package/dist/test/integration/menu-access-events.test.d.ts +0 -1
  205. package/dist/test/integration/menu-access-events.test.js +0 -148
  206. package/dist/test/integration/menu-access-events.test.js.map +0 -1
  207. package/dist/test/integration/notification-inbox.test.d.ts +0 -1
  208. package/dist/test/integration/notification-inbox.test.js +0 -100
  209. package/dist/test/integration/notification-inbox.test.js.map +0 -1
  210. package/dist/test/integration/notification-locked-subjects.test.d.ts +0 -1
  211. package/dist/test/integration/notification-locked-subjects.test.js +0 -82
  212. package/dist/test/integration/notification-locked-subjects.test.js.map +0 -1
  213. package/dist/test/integration/notification-unread-badge.test.d.ts +0 -1
  214. package/dist/test/integration/notification-unread-badge.test.js +0 -138
  215. package/dist/test/integration/notification-unread-badge.test.js.map +0 -1
  216. package/dist/test/integration/notifications.test.d.ts +0 -1
  217. package/dist/test/integration/notifications.test.js +0 -311
  218. package/dist/test/integration/notifications.test.js.map +0 -1
  219. package/dist/test/integration/page-layout-route-guard.test.d.ts +0 -1
  220. package/dist/test/integration/page-layout-route-guard.test.js +0 -56
  221. package/dist/test/integration/page-layout-route-guard.test.js.map +0 -1
  222. package/dist/test/integration/page-session.test.d.ts +0 -1
  223. package/dist/test/integration/page-session.test.js +0 -52
  224. package/dist/test/integration/page-session.test.js.map +0 -1
  225. package/dist/test/integration/permission-warnings.test.d.ts +0 -1
  226. package/dist/test/integration/permission-warnings.test.js +0 -72
  227. package/dist/test/integration/permission-warnings.test.js.map +0 -1
  228. package/dist/test/integration/removed-member-notifications.test.d.ts +0 -1
  229. package/dist/test/integration/removed-member-notifications.test.js +0 -81
  230. package/dist/test/integration/removed-member-notifications.test.js.map +0 -1
  231. package/dist/test/integration/role-delete-reassign.test.d.ts +0 -1
  232. package/dist/test/integration/role-delete-reassign.test.js +0 -69
  233. package/dist/test/integration/role-delete-reassign.test.js.map +0 -1
  234. package/dist/test/integration/role-permission-ancestors.test.d.ts +0 -1
  235. package/dist/test/integration/role-permission-ancestors.test.js +0 -147
  236. package/dist/test/integration/role-permission-ancestors.test.js.map +0 -1
  237. package/dist/test/integration/saas-mode-ownership.test.d.ts +0 -1
  238. package/dist/test/integration/saas-mode-ownership.test.js +0 -81
  239. package/dist/test/integration/saas-mode-ownership.test.js.map +0 -1
  240. package/dist/test/integration/setup.test.d.ts +0 -1
  241. package/dist/test/integration/setup.test.js +0 -45
  242. package/dist/test/integration/setup.test.js.map +0 -1
  243. package/dist/test/integration/sign-in-records.test.d.ts +0 -1
  244. package/dist/test/integration/sign-in-records.test.js +0 -41
  245. package/dist/test/integration/sign-in-records.test.js.map +0 -1
  246. package/dist/test/integration/table-view-archive.test.d.ts +0 -1
  247. package/dist/test/integration/table-view-archive.test.js +0 -46
  248. package/dist/test/integration/table-view-archive.test.js.map +0 -1
  249. package/dist/test/integration/table-view-capabilities.test.d.ts +0 -1
  250. package/dist/test/integration/table-view-capabilities.test.js +0 -177
  251. package/dist/test/integration/table-view-capabilities.test.js.map +0 -1
  252. package/dist/test/integration/tenant-lifecycle.test.d.ts +0 -1
  253. package/dist/test/integration/tenant-lifecycle.test.js +0 -278
  254. package/dist/test/integration/tenant-lifecycle.test.js.map +0 -1
  255. package/dist/test/reload-host/index.d.ts +0 -2
  256. package/dist/test/reload-host/index.js +0 -58
  257. package/dist/test/reload-host/index.js.map +0 -1
  258. package/dist/test/reload-host/package.json +0 -8
  259. package/dist/test/unit/api-base-url.test.d.ts +0 -1
  260. package/dist/test/unit/api-base-url.test.js +0 -31
  261. package/dist/test/unit/api-base-url.test.js.map +0 -1
  262. package/dist/test/unit/auth-session-revocation.test.d.ts +0 -1
  263. package/dist/test/unit/auth-session-revocation.test.js +0 -105
  264. package/dist/test/unit/auth-session-revocation.test.js.map +0 -1
  265. package/dist/test/unit/auth-token-purpose.test.d.ts +0 -1
  266. package/dist/test/unit/auth-token-purpose.test.js +0 -84
  267. package/dist/test/unit/auth-token-purpose.test.js.map +0 -1
  268. package/dist/test/unit/automation-registration-lifecycle.test.d.ts +0 -1
  269. package/dist/test/unit/automation-registration-lifecycle.test.js +0 -23
  270. package/dist/test/unit/automation-registration-lifecycle.test.js.map +0 -1
  271. package/dist/test/unit/client-ip.test.d.ts +0 -1
  272. package/dist/test/unit/client-ip.test.js +0 -71
  273. package/dist/test/unit/client-ip.test.js.map +0 -1
  274. package/dist/test/unit/db/email-normalization.test.d.ts +0 -1
  275. package/dist/test/unit/db/email-normalization.test.js +0 -58
  276. package/dist/test/unit/db/email-normalization.test.js.map +0 -1
  277. package/dist/test/unit/db/notification-feed-filter.test.d.ts +0 -1
  278. package/dist/test/unit/db/notification-feed-filter.test.js +0 -128
  279. package/dist/test/unit/db/notification-feed-filter.test.js.map +0 -1
  280. package/dist/test/unit/db/notification-feed-index.test.d.ts +0 -1
  281. package/dist/test/unit/db/notification-feed-index.test.js +0 -35
  282. package/dist/test/unit/db/notification-feed-index.test.js.map +0 -1
  283. package/dist/test/unit/db/notification-inbox.test.d.ts +0 -1
  284. package/dist/test/unit/db/notification-inbox.test.js +0 -160
  285. package/dist/test/unit/db/notification-inbox.test.js.map +0 -1
  286. package/dist/test/unit/db/notification-preferences.test.d.ts +0 -1
  287. package/dist/test/unit/db/notification-preferences.test.js +0 -39
  288. package/dist/test/unit/db/notification-preferences.test.js.map +0 -1
  289. package/dist/test/unit/db/session-refresh-token.test.d.ts +0 -1
  290. package/dist/test/unit/db/session-refresh-token.test.js +0 -41
  291. package/dist/test/unit/db/session-refresh-token.test.js.map +0 -1
  292. package/dist/test/unit/db/session-sweep.test.d.ts +0 -1
  293. package/dist/test/unit/db/session-sweep.test.js +0 -43
  294. package/dist/test/unit/db/session-sweep.test.js.map +0 -1
  295. package/dist/test/unit/db/system-state.model.test.d.ts +0 -1
  296. package/dist/test/unit/db/system-state.model.test.js +0 -55
  297. package/dist/test/unit/db/system-state.model.test.js.map +0 -1
  298. package/dist/test/unit/dev/module-update-notifications.test.d.ts +0 -1
  299. package/dist/test/unit/dev/module-update-notifications.test.js +0 -43
  300. package/dist/test/unit/dev/module-update-notifications.test.js.map +0 -1
  301. package/dist/test/unit/dist-self-imports.test.d.ts +0 -1
  302. package/dist/test/unit/dist-self-imports.test.js +0 -25
  303. package/dist/test/unit/dist-self-imports.test.js.map +0 -1
  304. package/dist/test/unit/frontend-bootstrap.test.d.ts +0 -1
  305. package/dist/test/unit/frontend-bootstrap.test.js +0 -88
  306. package/dist/test/unit/frontend-bootstrap.test.js.map +0 -1
  307. package/dist/test/unit/frontend-renderer-range.test.d.ts +0 -1
  308. package/dist/test/unit/frontend-renderer-range.test.js +0 -45
  309. package/dist/test/unit/frontend-renderer-range.test.js.map +0 -1
  310. package/dist/test/unit/implementations/dms/archive-filter.test.d.ts +0 -1
  311. package/dist/test/unit/implementations/dms/archive-filter.test.js +0 -63
  312. package/dist/test/unit/implementations/dms/archive-filter.test.js.map +0 -1
  313. package/dist/test/unit/implementations/dms/category-slug-registry.test.d.ts +0 -1
  314. package/dist/test/unit/implementations/dms/category-slug-registry.test.js +0 -196
  315. package/dist/test/unit/implementations/dms/category-slug-registry.test.js.map +0 -1
  316. package/dist/test/unit/implementations/dms/dev-reload.test.d.ts +0 -1
  317. package/dist/test/unit/implementations/dms/dev-reload.test.js +0 -100
  318. package/dist/test/unit/implementations/dms/dev-reload.test.js.map +0 -1
  319. package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.d.ts +0 -1
  320. package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.js +0 -171
  321. package/dist/test/unit/implementations/dms/dynamic-menu-hardening.test.js.map +0 -1
  322. package/dist/test/unit/implementations/dms/dynamic-menu.test.d.ts +0 -1
  323. package/dist/test/unit/implementations/dms/dynamic-menu.test.js +0 -478
  324. package/dist/test/unit/implementations/dms/dynamic-menu.test.js.map +0 -1
  325. package/dist/test/unit/implementations/dms/empty-menu-group.test.d.ts +0 -1
  326. package/dist/test/unit/implementations/dms/empty-menu-group.test.js +0 -133
  327. package/dist/test/unit/implementations/dms/empty-menu-group.test.js.map +0 -1
  328. package/dist/test/unit/implementations/dms/frontend-backend-proxies.test.d.ts +0 -1
  329. package/dist/test/unit/implementations/dms/frontend-backend-proxies.test.js +0 -66
  330. package/dist/test/unit/implementations/dms/frontend-backend-proxies.test.js.map +0 -1
  331. package/dist/test/unit/implementations/dms/frontend-establish-endpoints.test.d.ts +0 -1
  332. package/dist/test/unit/implementations/dms/frontend-establish-endpoints.test.js +0 -58
  333. package/dist/test/unit/implementations/dms/frontend-establish-endpoints.test.js.map +0 -1
  334. package/dist/test/unit/implementations/dms/frontend-module-metadata.test.d.ts +0 -1
  335. package/dist/test/unit/implementations/dms/frontend-module-metadata.test.js +0 -38
  336. package/dist/test/unit/implementations/dms/frontend-module-metadata.test.js.map +0 -1
  337. package/dist/test/unit/implementations/dms/frontend-public-endpoints.test.d.ts +0 -1
  338. package/dist/test/unit/implementations/dms/frontend-public-endpoints.test.js +0 -74
  339. package/dist/test/unit/implementations/dms/frontend-public-endpoints.test.js.map +0 -1
  340. package/dist/test/unit/implementations/dms/gate-consistency.test.d.ts +0 -1
  341. package/dist/test/unit/implementations/dms/gate-consistency.test.js +0 -112
  342. package/dist/test/unit/implementations/dms/gate-consistency.test.js.map +0 -1
  343. package/dist/test/unit/implementations/dms/layout-banners.test.d.ts +0 -1
  344. package/dist/test/unit/implementations/dms/layout-banners.test.js +0 -307
  345. package/dist/test/unit/implementations/dms/layout-banners.test.js.map +0 -1
  346. package/dist/test/unit/implementations/dms/manifest-strip.test.d.ts +0 -1
  347. package/dist/test/unit/implementations/dms/manifest-strip.test.js +0 -141
  348. package/dist/test/unit/implementations/dms/manifest-strip.test.js.map +0 -1
  349. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.d.ts +0 -1
  350. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.js +0 -149
  351. package/dist/test/unit/implementations/dms/menu-hidden-blocks.test.js.map +0 -1
  352. package/dist/test/unit/implementations/dms/missing-category.test.d.ts +0 -1
  353. package/dist/test/unit/implementations/dms/missing-category.test.js +0 -220
  354. package/dist/test/unit/implementations/dms/missing-category.test.js.map +0 -1
  355. package/dist/test/unit/implementations/dms/module-address-page.test.d.ts +0 -1
  356. package/dist/test/unit/implementations/dms/module-address-page.test.js +0 -107
  357. package/dist/test/unit/implementations/dms/module-address-page.test.js.map +0 -1
  358. package/dist/test/unit/implementations/dms/nav-badges.test.d.ts +0 -1
  359. package/dist/test/unit/implementations/dms/nav-badges.test.js +0 -211
  360. package/dist/test/unit/implementations/dms/nav-badges.test.js.map +0 -1
  361. package/dist/test/unit/implementations/dms/notify-menu-changed.test.d.ts +0 -1
  362. package/dist/test/unit/implementations/dms/notify-menu-changed.test.js +0 -68
  363. package/dist/test/unit/implementations/dms/notify-menu-changed.test.js.map +0 -1
  364. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.d.ts +0 -1
  365. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.js +0 -118
  366. package/dist/test/unit/implementations/dms/page-all-components-hidden.test.js.map +0 -1
  367. package/dist/test/unit/implementations/dms/page-tenant-gate.test.d.ts +0 -1
  368. package/dist/test/unit/implementations/dms/page-tenant-gate.test.js +0 -189
  369. package/dist/test/unit/implementations/dms/page-tenant-gate.test.js.map +0 -1
  370. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.d.ts +0 -1
  371. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.js +0 -132
  372. package/dist/test/unit/implementations/dms/permission-preview-aggregate.test.js.map +0 -1
  373. package/dist/test/unit/implementations/dms/permission-preview-cost.test.d.ts +0 -1
  374. package/dist/test/unit/implementations/dms/permission-preview-cost.test.js +0 -120
  375. package/dist/test/unit/implementations/dms/permission-preview-cost.test.js.map +0 -1
  376. package/dist/test/unit/implementations/dms/permission-preview-header.test.d.ts +0 -1
  377. package/dist/test/unit/implementations/dms/permission-preview-header.test.js +0 -78
  378. package/dist/test/unit/implementations/dms/permission-preview-header.test.js.map +0 -1
  379. package/dist/test/unit/implementations/dms/permission-preview-menu.test.d.ts +0 -1
  380. package/dist/test/unit/implementations/dms/permission-preview-menu.test.js +0 -188
  381. package/dist/test/unit/implementations/dms/permission-preview-menu.test.js.map +0 -1
  382. package/dist/test/unit/implementations/dms/permission-teardown.test.d.ts +0 -1
  383. package/dist/test/unit/implementations/dms/permission-teardown.test.js +0 -105
  384. package/dist/test/unit/implementations/dms/permission-teardown.test.js.map +0 -1
  385. package/dist/test/unit/implementations/dms/quick-actions-access.test.d.ts +0 -1
  386. package/dist/test/unit/implementations/dms/quick-actions-access.test.js +0 -159
  387. package/dist/test/unit/implementations/dms/quick-actions-access.test.js.map +0 -1
  388. package/dist/test/unit/implementations/dms/quick-actions-button.test.d.ts +0 -1
  389. package/dist/test/unit/implementations/dms/quick-actions-button.test.js +0 -222
  390. package/dist/test/unit/implementations/dms/quick-actions-button.test.js.map +0 -1
  391. package/dist/test/unit/implementations/dms/quick-actions-openform.test.d.ts +0 -1
  392. package/dist/test/unit/implementations/dms/quick-actions-openform.test.js +0 -184
  393. package/dist/test/unit/implementations/dms/quick-actions-openform.test.js.map +0 -1
  394. package/dist/test/unit/implementations/dms/subscribe-message.test.d.ts +0 -1
  395. package/dist/test/unit/implementations/dms/subscribe-message.test.js +0 -68
  396. package/dist/test/unit/implementations/dms/subscribe-message.test.js.map +0 -1
  397. package/dist/test/unit/implementations/dms/surface-redaction.test.d.ts +0 -1
  398. package/dist/test/unit/implementations/dms/surface-redaction.test.js +0 -171
  399. package/dist/test/unit/implementations/dms/surface-redaction.test.js.map +0 -1
  400. package/dist/test/unit/implementations/dms/user-can-access-page.test.d.ts +0 -1
  401. package/dist/test/unit/implementations/dms/user-can-access-page.test.js +0 -113
  402. package/dist/test/unit/implementations/dms/user-can-access-page.test.js.map +0 -1
  403. package/dist/test/unit/implementations/dms/user-permissions-gate.test.d.ts +0 -1
  404. package/dist/test/unit/implementations/dms/user-permissions-gate.test.js +0 -159
  405. package/dist/test/unit/implementations/dms/user-permissions-gate.test.js.map +0 -1
  406. package/dist/test/unit/implementations/dms/warn-once.test.d.ts +0 -1
  407. package/dist/test/unit/implementations/dms/warn-once.test.js +0 -179
  408. package/dist/test/unit/implementations/dms/warn-once.test.js.map +0 -1
  409. package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.d.ts +0 -1
  410. package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.js +0 -121
  411. package/dist/test/unit/implementations/dms-base/archive-mode-helpers.test.js.map +0 -1
  412. package/dist/test/unit/implementations/dms-base/filter-tokens.test.d.ts +0 -1
  413. package/dist/test/unit/implementations/dms-base/filter-tokens.test.js +0 -39
  414. package/dist/test/unit/implementations/dms-base/filter-tokens.test.js.map +0 -1
  415. package/dist/test/unit/implementations/dms-base/footer-summary.test.d.ts +0 -1
  416. package/dist/test/unit/implementations/dms-base/footer-summary.test.js +0 -51
  417. package/dist/test/unit/implementations/dms-base/footer-summary.test.js.map +0 -1
  418. package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.d.ts +0 -1
  419. package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.js +0 -120
  420. package/dist/test/unit/implementations/dms-base/table-view-export-batching.test.js.map +0 -1
  421. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.d.ts +0 -1
  422. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js +0 -114
  423. package/dist/test/unit/implementations/dms-base/table-view-shared-controller.test.js.map +0 -1
  424. package/dist/test/unit/implementations/dms-html-render/built-in-emails.test.d.ts +0 -1
  425. package/dist/test/unit/implementations/dms-html-render/built-in-emails.test.js +0 -34
  426. package/dist/test/unit/implementations/dms-html-render/built-in-emails.test.js.map +0 -1
  427. package/dist/test/unit/implementations/dms-html-render/generate-html.test.d.ts +0 -1
  428. package/dist/test/unit/implementations/dms-html-render/generate-html.test.js +0 -62
  429. package/dist/test/unit/implementations/dms-html-render/generate-html.test.js.map +0 -1
  430. package/dist/test/unit/implementations/dms-html-render/service-jwt.test.d.ts +0 -1
  431. package/dist/test/unit/implementations/dms-html-render/service-jwt.test.js +0 -37
  432. package/dist/test/unit/implementations/dms-html-render/service-jwt.test.js.map +0 -1
  433. package/dist/test/unit/implementations/dms-notifications/delivery-dedupe.test.d.ts +0 -1
  434. package/dist/test/unit/implementations/dms-notifications/delivery-dedupe.test.js +0 -100
  435. package/dist/test/unit/implementations/dms-notifications/delivery-dedupe.test.js.map +0 -1
  436. package/dist/test/unit/implementations/dms-notifications/delivery-guard.test.d.ts +0 -1
  437. package/dist/test/unit/implementations/dms-notifications/delivery-guard.test.js +0 -20
  438. package/dist/test/unit/implementations/dms-notifications/delivery-guard.test.js.map +0 -1
  439. package/dist/test/unit/implementations/notification-subject-lock.test.d.ts +0 -1
  440. package/dist/test/unit/implementations/notification-subject-lock.test.js +0 -31
  441. package/dist/test/unit/implementations/notification-subject-lock.test.js.map +0 -1
  442. package/dist/test/unit/interfaces/dms/category-default-layout.test.d.ts +0 -1
  443. package/dist/test/unit/interfaces/dms/category-default-layout.test.js +0 -85
  444. package/dist/test/unit/interfaces/dms/category-default-layout.test.js.map +0 -1
  445. package/dist/test/unit/interfaces/dms/client-ip.test.d.ts +0 -1
  446. package/dist/test/unit/interfaces/dms/client-ip.test.js +0 -61
  447. package/dist/test/unit/interfaces/dms/client-ip.test.js.map +0 -1
  448. package/dist/test/unit/interfaces/dms/component-children-permissions.test.d.ts +0 -1
  449. package/dist/test/unit/interfaces/dms/component-children-permissions.test.js +0 -362
  450. package/dist/test/unit/interfaces/dms/component-children-permissions.test.js.map +0 -1
  451. package/dist/test/unit/interfaces/dms/component-transform.test.d.ts +0 -1
  452. package/dist/test/unit/interfaces/dms/component-transform.test.js +0 -45
  453. package/dist/test/unit/interfaces/dms/component-transform.test.js.map +0 -1
  454. package/dist/test/unit/interfaces/dms/database-initialized-hook.test.d.ts +0 -1
  455. package/dist/test/unit/interfaces/dms/database-initialized-hook.test.js +0 -92
  456. package/dist/test/unit/interfaces/dms/database-initialized-hook.test.js.map +0 -1
  457. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.d.ts +0 -1
  458. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.js +0 -133
  459. package/dist/test/unit/interfaces/dms/form-watch-permissions.test.js.map +0 -1
  460. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.d.ts +0 -1
  461. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.js +0 -149
  462. package/dist/test/unit/interfaces/dms/has-permission-ancestors.test.js.map +0 -1
  463. package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.d.ts +0 -1
  464. package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.js +0 -70
  465. package/dist/test/unit/interfaces/dms/has-permission-module-scope.test.js.map +0 -1
  466. package/dist/test/unit/interfaces/dms/hook-handler-results.test.d.ts +0 -1
  467. package/dist/test/unit/interfaces/dms/hook-handler-results.test.js +0 -49
  468. package/dist/test/unit/interfaces/dms/hook-handler-results.test.js.map +0 -1
  469. package/dist/test/unit/interfaces/dms/invite-extension.test.d.ts +0 -1
  470. package/dist/test/unit/interfaces/dms/invite-extension.test.js +0 -569
  471. package/dist/test/unit/interfaces/dms/invite-extension.test.js.map +0 -1
  472. package/dist/test/unit/interfaces/dms/member-access.test.d.ts +0 -1
  473. package/dist/test/unit/interfaces/dms/member-access.test.js +0 -143
  474. package/dist/test/unit/interfaces/dms/member-access.test.js.map +0 -1
  475. package/dist/test/unit/interfaces/dms/module-permission-registration.test.d.ts +0 -1
  476. package/dist/test/unit/interfaces/dms/module-permission-registration.test.js +0 -107
  477. package/dist/test/unit/interfaces/dms/module-permission-registration.test.js.map +0 -1
  478. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.d.ts +0 -1
  479. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js +0 -51
  480. package/dist/test/unit/interfaces/dms/module-reload-registrations.test.js.map +0 -1
  481. package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.d.ts +0 -1
  482. package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.js +0 -28
  483. package/dist/test/unit/interfaces/dms/module-scoped-permissions.test.js.map +0 -1
  484. package/dist/test/unit/interfaces/dms/native-file-registration.test.d.ts +0 -1
  485. package/dist/test/unit/interfaces/dms/native-file-registration.test.js +0 -135
  486. package/dist/test/unit/interfaces/dms/native-file-registration.test.js.map +0 -1
  487. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.d.ts +0 -1
  488. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.js +0 -31
  489. package/dist/test/unit/interfaces/dms/nav-badge-tones.test.js.map +0 -1
  490. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.d.ts +0 -1
  491. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js +0 -153
  492. package/dist/test/unit/interfaces/dms/page-extension-ownership.test.js.map +0 -1
  493. package/dist/test/unit/interfaces/dms/page-extension.test.d.ts +0 -1
  494. package/dist/test/unit/interfaces/dms/page-extension.test.js +0 -662
  495. package/dist/test/unit/interfaces/dms/page-extension.test.js.map +0 -1
  496. package/dist/test/unit/interfaces/dms/page-layout-gate.test.d.ts +0 -1
  497. package/dist/test/unit/interfaces/dms/page-layout-gate.test.js +0 -143
  498. package/dist/test/unit/interfaces/dms/page-layout-gate.test.js.map +0 -1
  499. package/dist/test/unit/interfaces/dms/page-layout-query.test.d.ts +0 -1
  500. package/dist/test/unit/interfaces/dms/page-layout-query.test.js +0 -134
  501. package/dist/test/unit/interfaces/dms/page-layout-query.test.js.map +0 -1
  502. package/dist/test/unit/interfaces/dms/page-permission-teardown.test.d.ts +0 -1
  503. package/dist/test/unit/interfaces/dms/page-permission-teardown.test.js +0 -75
  504. package/dist/test/unit/interfaces/dms/page-permission-teardown.test.js.map +0 -1
  505. package/dist/test/unit/interfaces/dms/page-registration-identity.test.d.ts +0 -1
  506. package/dist/test/unit/interfaces/dms/page-registration-identity.test.js +0 -204
  507. package/dist/test/unit/interfaces/dms/page-registration-identity.test.js.map +0 -1
  508. package/dist/test/unit/interfaces/dms/page-teardown.test.d.ts +0 -1
  509. package/dist/test/unit/interfaces/dms/page-teardown.test.js +0 -291
  510. package/dist/test/unit/interfaces/dms/page-teardown.test.js.map +0 -1
  511. package/dist/test/unit/interfaces/dms/page-topics.test.d.ts +0 -1
  512. package/dist/test/unit/interfaces/dms/page-topics.test.js +0 -308
  513. package/dist/test/unit/interfaces/dms/page-topics.test.js.map +0 -1
  514. package/dist/test/unit/interfaces/dms/password-policy.test.d.ts +0 -1
  515. package/dist/test/unit/interfaces/dms/password-policy.test.js +0 -43
  516. package/dist/test/unit/interfaces/dms/password-policy.test.js.map +0 -1
  517. package/dist/test/unit/interfaces/dms/permission-requirements.test.d.ts +0 -1
  518. package/dist/test/unit/interfaces/dms/permission-requirements.test.js +0 -144
  519. package/dist/test/unit/interfaces/dms/permission-requirements.test.js.map +0 -1
  520. package/dist/test/unit/interfaces/dms/saas-mode.test.d.ts +0 -1
  521. package/dist/test/unit/interfaces/dms/saas-mode.test.js +0 -42
  522. package/dist/test/unit/interfaces/dms/saas-mode.test.js.map +0 -1
  523. package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.d.ts +0 -1
  524. package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.js +0 -92
  525. package/dist/test/unit/interfaces/dms/tenant-being-provisioned-hook.test.js.map +0 -1
  526. package/dist/test/unit/interfaces/dms/tenant-invite-email.test.d.ts +0 -1
  527. package/dist/test/unit/interfaces/dms/tenant-invite-email.test.js +0 -53
  528. package/dist/test/unit/interfaces/dms/tenant-invite-email.test.js.map +0 -1
  529. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.d.ts +0 -1
  530. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js +0 -141
  531. package/dist/test/unit/interfaces/dms-auth/refresh-token-rotation.test.js.map +0 -1
  532. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.d.ts +0 -1
  533. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js +0 -53
  534. package/dist/test/unit/interfaces/dms-base/block-parity-options.test.js.map +0 -1
  535. package/dist/test/unit/interfaces/dms-base/block-vocabulary.test.d.ts +0 -1
  536. package/dist/test/unit/interfaces/dms-base/block-vocabulary.test.js +0 -77
  537. package/dist/test/unit/interfaces/dms-base/block-vocabulary.test.js.map +0 -1
  538. package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.d.ts +0 -1
  539. package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.js +0 -29
  540. package/dist/test/unit/interfaces/dms-base/chart-value-precision.test.js.map +0 -1
  541. package/dist/test/unit/interfaces/dms-base/code-block-catalog.test.d.ts +0 -1
  542. package/dist/test/unit/interfaces/dms-base/code-block-catalog.test.js +0 -46
  543. package/dist/test/unit/interfaces/dms-base/code-block-catalog.test.js.map +0 -1
  544. package/dist/test/unit/interfaces/dms-base/column-display.test.d.ts +0 -1
  545. package/dist/test/unit/interfaces/dms-base/column-display.test.js +0 -194
  546. package/dist/test/unit/interfaces/dms-base/column-display.test.js.map +0 -1
  547. package/dist/test/unit/interfaces/dms-base/confirm-dialog-secondary-action.test.d.ts +0 -1
  548. package/dist/test/unit/interfaces/dms-base/confirm-dialog-secondary-action.test.js +0 -26
  549. package/dist/test/unit/interfaces/dms-base/confirm-dialog-secondary-action.test.js.map +0 -1
  550. package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.d.ts +0 -1
  551. package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.js +0 -254
  552. package/dist/test/unit/interfaces/dms-base/data-types/default-types.test.js.map +0 -1
  553. package/dist/test/unit/interfaces/dms-base/data-types/field-types.test.d.ts +0 -1
  554. package/dist/test/unit/interfaces/dms-base/data-types/field-types.test.js +0 -194
  555. package/dist/test/unit/interfaces/dms-base/data-types/field-types.test.js.map +0 -1
  556. package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.d.ts +0 -1
  557. package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.js +0 -56
  558. package/dist/test/unit/interfaces/dms-base/data-types/status-type.test.js.map +0 -1
  559. package/dist/test/unit/interfaces/dms-base/date-type-filter.test.d.ts +0 -1
  560. package/dist/test/unit/interfaces/dms-base/date-type-filter.test.js +0 -34
  561. package/dist/test/unit/interfaces/dms-base/date-type-filter.test.js.map +0 -1
  562. package/dist/test/unit/interfaces/dms-base/date-type-range.test.d.ts +0 -1
  563. package/dist/test/unit/interfaces/dms-base/date-type-range.test.js +0 -29
  564. package/dist/test/unit/interfaces/dms-base/date-type-range.test.js.map +0 -1
  565. package/dist/test/unit/interfaces/dms-base/display-blocks-catalog.test.d.ts +0 -1
  566. package/dist/test/unit/interfaces/dms-base/display-blocks-catalog.test.js +0 -159
  567. package/dist/test/unit/interfaces/dms-base/display-blocks-catalog.test.js.map +0 -1
  568. package/dist/test/unit/interfaces/dms-base/export-jobs-binding.test.d.ts +0 -1
  569. package/dist/test/unit/interfaces/dms-base/export-jobs-binding.test.js +0 -49
  570. package/dist/test/unit/interfaces/dms-base/export-jobs-binding.test.js.map +0 -1
  571. package/dist/test/unit/interfaces/dms-base/form-catalog.test.d.ts +0 -1
  572. package/dist/test/unit/interfaces/dms-base/form-catalog.test.js +0 -67
  573. package/dist/test/unit/interfaces/dms-base/form-catalog.test.js.map +0 -1
  574. package/dist/test/unit/interfaces/dms-base/form-footer.test.d.ts +0 -1
  575. package/dist/test/unit/interfaces/dms-base/form-footer.test.js +0 -12
  576. package/dist/test/unit/interfaces/dms-base/form-footer.test.js.map +0 -1
  577. package/dist/test/unit/interfaces/dms-base/form-sections.test.d.ts +0 -1
  578. package/dist/test/unit/interfaces/dms-base/form-sections.test.js +0 -93
  579. package/dist/test/unit/interfaces/dms-base/form-sections.test.js.map +0 -1
  580. package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.d.ts +0 -1
  581. package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.js +0 -174
  582. package/dist/test/unit/interfaces/dms-base/form-upload-tokens.test.js.map +0 -1
  583. package/dist/test/unit/interfaces/dms-base/guard.test.d.ts +0 -1
  584. package/dist/test/unit/interfaces/dms-base/guard.test.js +0 -53
  585. package/dist/test/unit/interfaces/dms-base/guard.test.js.map +0 -1
  586. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.d.ts +0 -1
  587. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.js +0 -328
  588. package/dist/test/unit/interfaces/dms-base/layout-header-actions.test.js.map +0 -1
  589. package/dist/test/unit/interfaces/dms-base/layouts.test.d.ts +0 -1
  590. package/dist/test/unit/interfaces/dms-base/layouts.test.js +0 -49
  591. package/dist/test/unit/interfaces/dms-base/layouts.test.js.map +0 -1
  592. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.d.ts +0 -1
  593. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.js +0 -43
  594. package/dist/test/unit/interfaces/dms-base/lists-and-settings-catalog.test.js.map +0 -1
  595. package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.d.ts +0 -1
  596. package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.js +0 -85
  597. package/dist/test/unit/interfaces/dms-base/nested-chart-card.test.js.map +0 -1
  598. package/dist/test/unit/interfaces/dms-base/page-live.test.d.ts +0 -1
  599. package/dist/test/unit/interfaces/dms-base/page-live.test.js +0 -121
  600. package/dist/test/unit/interfaces/dms-base/page-live.test.js.map +0 -1
  601. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.d.ts +0 -1
  602. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.js +0 -53
  603. package/dist/test/unit/interfaces/dms-base/period-selector-catalog.test.js.map +0 -1
  604. package/dist/test/unit/interfaces/dms-base/query-response-delta.test.d.ts +0 -1
  605. package/dist/test/unit/interfaces/dms-base/query-response-delta.test.js +0 -29
  606. package/dist/test/unit/interfaces/dms-base/query-response-delta.test.js.map +0 -1
  607. package/dist/test/unit/interfaces/dms-base/resource-form.test.d.ts +0 -1
  608. package/dist/test/unit/interfaces/dms-base/resource-form.test.js +0 -141
  609. package/dist/test/unit/interfaces/dms-base/resource-form.test.js.map +0 -1
  610. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.d.ts +0 -1
  611. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.js +0 -87
  612. package/dist/test/unit/interfaces/dms-base/table-and-card-catalog.test.js.map +0 -1
  613. package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.d.ts +0 -1
  614. package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.js +0 -29
  615. package/dist/test/unit/interfaces/dms-base/table-cell-wrap.test.js.map +0 -1
  616. package/dist/test/unit/interfaces/dms-base/table-view-after-write.test.d.ts +0 -1
  617. package/dist/test/unit/interfaces/dms-base/table-view-after-write.test.js +0 -62
  618. package/dist/test/unit/interfaces/dms-base/table-view-after-write.test.js.map +0 -1
  619. package/dist/test/unit/interfaces/dms-base/table-view-bulk-operations.test.d.ts +0 -1
  620. package/dist/test/unit/interfaces/dms-base/table-view-bulk-operations.test.js +0 -259
  621. package/dist/test/unit/interfaces/dms-base/table-view-bulk-operations.test.js.map +0 -1
  622. package/dist/test/unit/interfaces/dms-base/table-view-column-validator.test.d.ts +0 -1
  623. package/dist/test/unit/interfaces/dms-base/table-view-column-validator.test.js +0 -87
  624. package/dist/test/unit/interfaces/dms-base/table-view-column-validator.test.js.map +0 -1
  625. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.d.ts +0 -5
  626. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.js +0 -82
  627. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.fixture.js.map +0 -1
  628. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.d.ts +0 -1
  629. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.js +0 -24
  630. package/dist/test/unit/interfaces/dms-base/table-view-evaluation-order.test.js.map +0 -1
  631. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.d.ts +0 -1
  632. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.js +0 -91
  633. package/dist/test/unit/interfaces/dms-base/table-view-export-permission.test.js.map +0 -1
  634. package/dist/test/unit/interfaces/dms-base/table-view-footer.test.d.ts +0 -1
  635. package/dist/test/unit/interfaces/dms-base/table-view-footer.test.js +0 -177
  636. package/dist/test/unit/interfaces/dms-base/table-view-footer.test.js.map +0 -1
  637. package/dist/test/unit/interfaces/dms-base/table-view-form-page-texts.test.d.ts +0 -1
  638. package/dist/test/unit/interfaces/dms-base/table-view-form-page-texts.test.js +0 -36
  639. package/dist/test/unit/interfaces/dms-base/table-view-form-page-texts.test.js.map +0 -1
  640. package/dist/test/unit/interfaces/dms-base/table-view-form-page-urls.test.d.ts +0 -1
  641. package/dist/test/unit/interfaces/dms-base/table-view-form-page-urls.test.js +0 -362
  642. package/dist/test/unit/interfaces/dms-base/table-view-form-page-urls.test.js.map +0 -1
  643. package/dist/test/unit/interfaces/dms-base/table-view-form-redirect.test.d.ts +0 -1
  644. package/dist/test/unit/interfaces/dms-base/table-view-form-redirect.test.js +0 -253
  645. package/dist/test/unit/interfaces/dms-base/table-view-form-redirect.test.js.map +0 -1
  646. package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.d.ts +0 -1
  647. package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.js +0 -80
  648. package/dist/test/unit/interfaces/dms-base/table-view-form-slots.test.js.map +0 -1
  649. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.d.ts +0 -1
  650. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js +0 -211
  651. package/dist/test/unit/interfaces/dms-base/table-view-get-guard.test.js.map +0 -1
  652. package/dist/test/unit/interfaces/dms-base/table-view-hidden-columns.test.d.ts +0 -1
  653. package/dist/test/unit/interfaces/dms-base/table-view-hidden-columns.test.js +0 -105
  654. package/dist/test/unit/interfaces/dms-base/table-view-hidden-columns.test.js.map +0 -1
  655. package/dist/test/unit/interfaces/dms-base/table-view-meta-inherit.test.d.ts +0 -1
  656. package/dist/test/unit/interfaces/dms-base/table-view-meta-inherit.test.js +0 -119
  657. package/dist/test/unit/interfaces/dms-base/table-view-meta-inherit.test.js.map +0 -1
  658. package/dist/test/unit/interfaces/dms-base/table-view-one-writer.test.d.ts +0 -1
  659. package/dist/test/unit/interfaces/dms-base/table-view-one-writer.test.js +0 -179
  660. package/dist/test/unit/interfaces/dms-base/table-view-one-writer.test.js.map +0 -1
  661. package/dist/test/unit/interfaces/dms-base/table-view-realtime-no-change.test.d.ts +0 -1
  662. package/dist/test/unit/interfaces/dms-base/table-view-realtime-no-change.test.js +0 -23
  663. package/dist/test/unit/interfaces/dms-base/table-view-realtime-no-change.test.js.map +0 -1
  664. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.d.ts +0 -1
  665. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.js +0 -139
  666. package/dist/test/unit/interfaces/dms-base/table-view-realtime.test.js.map +0 -1
  667. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.d.ts +0 -1
  668. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.js +0 -487
  669. package/dist/test/unit/interfaces/dms-base/table-view-reduced-chrome.test.js.map +0 -1
  670. package/dist/test/unit/interfaces/dms-base/table-view-route-param-filter-defaults.test.d.ts +0 -1
  671. package/dist/test/unit/interfaces/dms-base/table-view-route-param-filter-defaults.test.js +0 -256
  672. package/dist/test/unit/interfaces/dms-base/table-view-route-param-filter-defaults.test.js.map +0 -1
  673. package/dist/test/unit/interfaces/dms-base/table-view-row-menu-label.test.d.ts +0 -1
  674. package/dist/test/unit/interfaces/dms-base/table-view-row-menu-label.test.js +0 -27
  675. package/dist/test/unit/interfaces/dms-base/table-view-row-menu-label.test.js.map +0 -1
  676. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.d.ts +0 -1
  677. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.js +0 -145
  678. package/dist/test/unit/interfaces/dms-base/table-view-shared-controller-permissions.test.js.map +0 -1
  679. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.d.ts +0 -1
  680. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js +0 -272
  681. package/dist/test/unit/interfaces/dms-base/table-view-source-reorder.test.js.map +0 -1
  682. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.d.ts +0 -1
  683. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js +0 -96
  684. package/dist/test/unit/interfaces/dms-base/table-view-tab-count-warning.test.js.map +0 -1
  685. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.d.ts +0 -1
  686. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js +0 -209
  687. package/dist/test/unit/interfaces/dms-base/table-view-tenant-gate.test.js.map +0 -1
  688. package/dist/test/unit/interfaces/dms-base/table-view-views.test.d.ts +0 -1
  689. package/dist/test/unit/interfaces/dms-base/table-view-views.test.js +0 -317
  690. package/dist/test/unit/interfaces/dms-base/table-view-views.test.js.map +0 -1
  691. package/dist/test/unit/interfaces/dms-base/table-view-writer-row-rules.test.d.ts +0 -1
  692. package/dist/test/unit/interfaces/dms-base/table-view-writer-row-rules.test.js +0 -292
  693. package/dist/test/unit/interfaces/dms-base/table-view-writer-row-rules.test.js.map +0 -1
  694. package/dist/test/unit/oauth-account-guard.test.d.ts +0 -1
  695. package/dist/test/unit/oauth-account-guard.test.js +0 -96
  696. package/dist/test/unit/oauth-account-guard.test.js.map +0 -1
  697. package/dist/test/unit/oauth-claim-account.test.d.ts +0 -1
  698. package/dist/test/unit/oauth-claim-account.test.js +0 -90
  699. package/dist/test/unit/oauth-claim-account.test.js.map +0 -1
  700. package/dist/test/unit/oauth-config.test.d.ts +0 -1
  701. package/dist/test/unit/oauth-config.test.js +0 -112
  702. package/dist/test/unit/oauth-config.test.js.map +0 -1
  703. package/dist/test/unit/oauth-linking-policy.test.d.ts +0 -1
  704. package/dist/test/unit/oauth-linking-policy.test.js +0 -114
  705. package/dist/test/unit/oauth-linking-policy.test.js.map +0 -1
  706. package/dist/test/unit/oauth-provider-identity.test.d.ts +0 -1
  707. package/dist/test/unit/oauth-provider-identity.test.js +0 -126
  708. package/dist/test/unit/oauth-provider-identity.test.js.map +0 -1
  709. package/dist/test/unit/oauth-relay.test.d.ts +0 -1
  710. package/dist/test/unit/oauth-relay.test.js +0 -40
  711. package/dist/test/unit/oauth-relay.test.js.map +0 -1
  712. package/dist/test/unit/oauth-state.test.d.ts +0 -1
  713. package/dist/test/unit/oauth-state.test.js +0 -61
  714. package/dist/test/unit/oauth-state.test.js.map +0 -1
  715. package/dist/test/unit/onboarding-platform.test.d.ts +0 -1
  716. package/dist/test/unit/onboarding-platform.test.js +0 -76
  717. package/dist/test/unit/onboarding-platform.test.js.map +0 -1
  718. package/dist/test/unit/pages/settings/account-activity-feed.test.d.ts +0 -1
  719. package/dist/test/unit/pages/settings/account-activity-feed.test.js +0 -116
  720. package/dist/test/unit/pages/settings/account-activity-feed.test.js.map +0 -1
  721. package/dist/test/unit/pages/settings/account-activity.test.d.ts +0 -1
  722. package/dist/test/unit/pages/settings/account-activity.test.js +0 -271
  723. package/dist/test/unit/pages/settings/account-activity.test.js.map +0 -1
  724. package/dist/test/unit/pages/settings/account-data.test.d.ts +0 -1
  725. package/dist/test/unit/pages/settings/account-data.test.js +0 -255
  726. package/dist/test/unit/pages/settings/account-data.test.js.map +0 -1
  727. package/dist/test/unit/pages/settings/account-security.test.d.ts +0 -1
  728. package/dist/test/unit/pages/settings/account-security.test.js +0 -208
  729. package/dist/test/unit/pages/settings/account-security.test.js.map +0 -1
  730. package/dist/test/unit/pages/settings/invite-availability.test.d.ts +0 -1
  731. package/dist/test/unit/pages/settings/invite-availability.test.js +0 -112
  732. package/dist/test/unit/pages/settings/invite-availability.test.js.map +0 -1
  733. package/dist/test/unit/pages/settings/invite-email-delivery.test.d.ts +0 -1
  734. package/dist/test/unit/pages/settings/invite-email-delivery.test.js +0 -146
  735. package/dist/test/unit/pages/settings/invite-email-delivery.test.js.map +0 -1
  736. package/dist/test/unit/pages/settings/invite-email-validation-option.test.d.ts +0 -1
  737. package/dist/test/unit/pages/settings/invite-email-validation-option.test.js +0 -33
  738. package/dist/test/unit/pages/settings/invite-email-validation-option.test.js.map +0 -1
  739. package/dist/test/unit/pages/settings/invite-member-quick-action.test.d.ts +0 -1
  740. package/dist/test/unit/pages/settings/invite-member-quick-action.test.js +0 -104
  741. package/dist/test/unit/pages/settings/invite-member-quick-action.test.js.map +0 -1
  742. package/dist/test/unit/pages/settings/member-lists-page-size.test.d.ts +0 -1
  743. package/dist/test/unit/pages/settings/member-lists-page-size.test.js +0 -22
  744. package/dist/test/unit/pages/settings/member-lists-page-size.test.js.map +0 -1
  745. package/dist/test/unit/pages/settings/member-roles-field.test.d.ts +0 -1
  746. package/dist/test/unit/pages/settings/member-roles-field.test.js +0 -47
  747. package/dist/test/unit/pages/settings/member-roles-field.test.js.map +0 -1
  748. package/dist/test/unit/pages/settings/member-table-widths.test.d.ts +0 -1
  749. package/dist/test/unit/pages/settings/member-table-widths.test.js +0 -53
  750. package/dist/test/unit/pages/settings/member-table-widths.test.js.map +0 -1
  751. package/dist/test/unit/pages/settings/members-page.test.d.ts +0 -1
  752. package/dist/test/unit/pages/settings/members-page.test.js +0 -231
  753. package/dist/test/unit/pages/settings/members-page.test.js.map +0 -1
  754. package/dist/test/unit/pages/settings/notifications-access-gate.test.d.ts +0 -1
  755. package/dist/test/unit/pages/settings/notifications-access-gate.test.js +0 -71
  756. package/dist/test/unit/pages/settings/notifications-access-gate.test.js.map +0 -1
  757. package/dist/test/unit/pages/settings/permission-tree-nodes.test.d.ts +0 -1
  758. package/dist/test/unit/pages/settings/permission-tree-nodes.test.js +0 -161
  759. package/dist/test/unit/pages/settings/permission-tree-nodes.test.js.map +0 -1
  760. package/dist/test/unit/pages/settings/permission-warnings.test.d.ts +0 -1
  761. package/dist/test/unit/pages/settings/permission-warnings.test.js +0 -49
  762. package/dist/test/unit/pages/settings/permission-warnings.test.js.map +0 -1
  763. package/dist/test/unit/pages/settings/profile-email-change.test.d.ts +0 -1
  764. package/dist/test/unit/pages/settings/profile-email-change.test.js +0 -50
  765. package/dist/test/unit/pages/settings/profile-email-change.test.js.map +0 -1
  766. package/dist/test/unit/pages/settings/regional-preferences.test.d.ts +0 -1
  767. package/dist/test/unit/pages/settings/regional-preferences.test.js +0 -118
  768. package/dist/test/unit/pages/settings/regional-preferences.test.js.map +0 -1
  769. package/dist/test/unit/pages/settings/role-delete-confirm.test.d.ts +0 -1
  770. package/dist/test/unit/pages/settings/role-delete-confirm.test.js +0 -77
  771. package/dist/test/unit/pages/settings/role-delete-confirm.test.js.map +0 -1
  772. package/dist/test/unit/pages/settings/role-editor.test.d.ts +0 -1
  773. package/dist/test/unit/pages/settings/role-editor.test.js +0 -277
  774. package/dist/test/unit/pages/settings/role-editor.test.js.map +0 -1
  775. package/dist/test/unit/pages/settings/role-preview.test.d.ts +0 -1
  776. package/dist/test/unit/pages/settings/role-preview.test.js +0 -207
  777. package/dist/test/unit/pages/settings/role-preview.test.js.map +0 -1
  778. package/dist/test/unit/pages/settings/security-attention.test.d.ts +0 -1
  779. package/dist/test/unit/pages/settings/security-attention.test.js +0 -74
  780. package/dist/test/unit/pages/settings/security-attention.test.js.map +0 -1
  781. package/dist/test/unit/realtime/menu-topics.test.d.ts +0 -1
  782. package/dist/test/unit/realtime/menu-topics.test.js +0 -26
  783. package/dist/test/unit/realtime/menu-topics.test.js.map +0 -1
  784. package/dist/test/unit/realtime/stop-closes-streams.test.d.ts +0 -1
  785. package/dist/test/unit/realtime/stop-closes-streams.test.js +0 -99
  786. package/dist/test/unit/realtime/stop-closes-streams.test.js.map +0 -1
  787. package/dist/test/unit/request-authenticators.test.d.ts +0 -1
  788. package/dist/test/unit/request-authenticators.test.js +0 -153
  789. package/dist/test/unit/request-authenticators.test.js.map +0 -1
  790. package/dist/test/unit/request-tenant-guards.test.d.ts +0 -1
  791. package/dist/test/unit/request-tenant-guards.test.js +0 -200
  792. package/dist/test/unit/request-tenant-guards.test.js.map +0 -1
  793. package/dist/test/unit/sanitize-user.test.d.ts +0 -1
  794. package/dist/test/unit/sanitize-user.test.js +0 -21
  795. package/dist/test/unit/sanitize-user.test.js.map +0 -1
  796. package/dist/test/unit/signup-account-guard.test.d.ts +0 -1
  797. package/dist/test/unit/signup-account-guard.test.js +0 -141
  798. package/dist/test/unit/signup-account-guard.test.js.map +0 -1
  799. package/dist/test/unit/signup-email-validation.test.d.ts +0 -1
  800. package/dist/test/unit/signup-email-validation.test.js +0 -79
  801. package/dist/test/unit/signup-email-validation.test.js.map +0 -1
  802. package/dist/test/unit/store/store.test.d.ts +0 -1
  803. package/dist/test/unit/store/store.test.js +0 -127
  804. package/dist/test/unit/store/store.test.js.map +0 -1
  805. package/dist/test/unit/upload-constraints.test.d.ts +0 -1
  806. package/dist/test/unit/upload-constraints.test.js +0 -43
  807. package/dist/test/unit/upload-constraints.test.js.map +0 -1
  808. package/dist/test/unit/upload-token.test.d.ts +0 -1
  809. package/dist/test/unit/upload-token.test.js +0 -46
  810. package/dist/test/unit/upload-token.test.js.map +0 -1
  811. package/dist/test/unit/utils/admin-invite-email.test.d.ts +0 -1
  812. package/dist/test/unit/utils/admin-invite-email.test.js +0 -69
  813. package/dist/test/unit/utils/admin-invite-email.test.js.map +0 -1
  814. package/dist/test/unit/utils/attempt-limiter.test.d.ts +0 -1
  815. package/dist/test/unit/utils/attempt-limiter.test.js +0 -43
  816. package/dist/test/unit/utils/attempt-limiter.test.js.map +0 -1
  817. package/dist/test/unit/utils/email-subjects.test.d.ts +0 -1
  818. package/dist/test/unit/utils/email-subjects.test.js +0 -27
  819. package/dist/test/unit/utils/email-subjects.test.js.map +0 -1
  820. package/dist/test/unit/utils/failed-sign-ins.test.d.ts +0 -1
  821. package/dist/test/unit/utils/failed-sign-ins.test.js +0 -57
  822. package/dist/test/unit/utils/failed-sign-ins.test.js.map +0 -1
  823. package/dist/test/unit/utils/notification-rules.test.d.ts +0 -1
  824. package/dist/test/unit/utils/notification-rules.test.js +0 -60
  825. package/dist/test/unit/utils/notification-rules.test.js.map +0 -1
  826. package/dist/test/unit/utils/notification-tones.test.d.ts +0 -1
  827. package/dist/test/unit/utils/notification-tones.test.js +0 -18
  828. package/dist/test/unit/utils/notification-tones.test.js.map +0 -1
  829. package/dist/test/unit/utils/owned-registry.test.d.ts +0 -1
  830. package/dist/test/unit/utils/owned-registry.test.js +0 -61
  831. package/dist/test/unit/utils/owned-registry.test.js.map +0 -1
  832. package/dist/test/unit/utils/row-action-rule-evaluator.test.d.ts +0 -1
  833. package/dist/test/unit/utils/row-action-rule-evaluator.test.js +0 -143
  834. package/dist/test/unit/utils/row-action-rule-evaluator.test.js.map +0 -1
  835. package/dist/test/unit/utils/sign-in-country.test.d.ts +0 -1
  836. package/dist/test/unit/utils/sign-in-country.test.js +0 -70
  837. package/dist/test/unit/utils/sign-in-country.test.js.map +0 -1
  838. package/dist/test/unit/utils/sign-in-devices.test.d.ts +0 -1
  839. package/dist/test/unit/utils/sign-in-devices.test.js +0 -105
  840. package/dist/test/unit/utils/sign-in-devices.test.js.map +0 -1
  841. package/dist/test/unit/utils/tenant-export-archive.test.d.ts +0 -1
  842. package/dist/test/unit/utils/tenant-export-archive.test.js +0 -138
  843. package/dist/test/unit/utils/tenant-export-archive.test.js.map +0 -1
  844. package/dist/test/unit/utils/tenant-instances.test.d.ts +0 -1
  845. package/dist/test/unit/utils/tenant-instances.test.js +0 -53
  846. package/dist/test/unit/utils/tenant-instances.test.js.map +0 -1
  847. package/dist/test/unit/utils/type-check.test.d.ts +0 -1
  848. package/dist/test/unit/utils/type-check.test.js +0 -143
  849. package/dist/test/unit/utils/type-check.test.js.map +0 -1
  850. package/dist/test/unit/utils/user-activity.test.d.ts +0 -1
  851. package/dist/test/unit/utils/user-activity.test.js +0 -85
  852. package/dist/test/unit/utils/user-activity.test.js.map +0 -1
  853. package/dist/test/unit/utils/value-parser.test.d.ts +0 -1
  854. package/dist/test/unit/utils/value-parser.test.js +0 -166
  855. package/dist/test/unit/utils/value-parser.test.js.map +0 -1
  856. package/dist/test/unit/utils/workspace-notifications.test.d.ts +0 -1
  857. package/dist/test/unit/utils/workspace-notifications.test.js +0 -32
  858. package/dist/test/unit/utils/workspace-notifications.test.js.map +0 -1
  859. package/dist/test/unit/validation/auth.schema.test.d.ts +0 -1
  860. package/dist/test/unit/validation/auth.schema.test.js +0 -77
  861. package/dist/test/unit/validation/auth.schema.test.js.map +0 -1
  862. package/dist/test/unit/validation/file.schema.test.d.ts +0 -1
  863. package/dist/test/unit/validation/file.schema.test.js +0 -140
  864. package/dist/test/unit/validation/file.schema.test.js.map +0 -1
  865. package/dist/test/unit/validation/member-invite.schema.test.d.ts +0 -1
  866. package/dist/test/unit/validation/member-invite.schema.test.js +0 -79
  867. package/dist/test/unit/validation/member-invite.schema.test.js.map +0 -1
  868. package/dist/test/unit/validation/onboarding/register-admin.schema.test.d.ts +0 -1
  869. package/dist/test/unit/validation/onboarding/register-admin.schema.test.js +0 -109
  870. package/dist/test/unit/validation/onboarding/register-admin.schema.test.js.map +0 -1
  871. package/dist/test/unit/validation/user-notification-preferences.schema.test.d.ts +0 -1
  872. package/dist/test/unit/validation/user-notification-preferences.schema.test.js +0 -41
  873. package/dist/test/unit/validation/user-notification-preferences.schema.test.js.map +0 -1
  874. package/frontend-vue/.prettierrc +0 -10
  875. package/frontend-vue/.vscode/settings.json +0 -42
  876. package/frontend-vue/eslint.config.mjs +0 -50
  877. package/frontend-vue/pnpm-lock.yaml +0 -8182
  878. package/frontend-vue/pnpm-workspace.yaml +0 -9
  879. package/frontend-vue/tests/accessibility-preferences.test.ts +0 -320
  880. package/frontend-vue/tests/activity-feed-days.test.ts +0 -139
  881. package/frontend-vue/tests/activity-feed-fill-height.test.ts +0 -115
  882. package/frontend-vue/tests/activity-feed-fold.test.ts +0 -119
  883. package/frontend-vue/tests/activity-feed-head.test.ts +0 -140
  884. package/frontend-vue/tests/admin-invite-email.test.ts +0 -86
  885. package/frontend-vue/tests/api-error-title.test.ts +0 -24
  886. package/frontend-vue/tests/api-message-i18n.test.ts +0 -46
  887. package/frontend-vue/tests/async-data-key-owners.test.ts +0 -74
  888. package/frontend-vue/tests/async-data-scope.test.ts +0 -121
  889. package/frontend-vue/tests/auth-middleware-error.test.ts +0 -58
  890. package/frontend-vue/tests/banner-block-fetch.test.ts +0 -165
  891. package/frontend-vue/tests/banner-tone-icon.test.ts +0 -55
  892. package/frontend-vue/tests/block-fetch-options-forwarding.test.ts +0 -108
  893. package/frontend-vue/tests/block-items-period-realtime.test.ts +0 -150
  894. package/frontend-vue/tests/block-not-found.test.ts +0 -234
  895. package/frontend-vue/tests/block-page-refresh.test.ts +0 -131
  896. package/frontend-vue/tests/block-route-params.test.ts +0 -241
  897. package/frontend-vue/tests/branding-defaults.test.ts +0 -34
  898. package/frontend-vue/tests/breadcrumb-target.test.ts +0 -60
  899. package/frontend-vue/tests/builtin-emails.test.ts +0 -162
  900. package/frontend-vue/tests/button-disabled-theme.test.ts +0 -21
  901. package/frontend-vue/tests/cascader.test.ts +0 -216
  902. package/frontend-vue/tests/category-nav-cards.test.ts +0 -105
  903. package/frontend-vue/tests/chart-absent-value.test.ts +0 -78
  904. package/frontend-vue/tests/chart-auto-y-range.test.ts +0 -131
  905. package/frontend-vue/tests/chart-click-payload.test.ts +0 -34
  906. package/frontend-vue/tests/chart-colors.browser.html +0 -157
  907. package/frontend-vue/tests/chart-colors.test.ts +0 -185
  908. package/frontend-vue/tests/chart-legend.test.ts +0 -133
  909. package/frontend-vue/tests/chart-live-pause.test.ts +0 -77
  910. package/frontend-vue/tests/chart-nested-donut.test.ts +0 -97
  911. package/frontend-vue/tests/chart-options.test.ts +0 -281
  912. package/frontend-vue/tests/chart-resize-after-animation.test.ts +0 -100
  913. package/frontend-vue/tests/chart-series-styles.test.ts +0 -131
  914. package/frontend-vue/tests/chart-type-defaults.test.ts +0 -128
  915. package/frontend-vue/tests/chart-value-precision.test.ts +0 -54
  916. package/frontend-vue/tests/chart-value-propagation.test.ts +0 -159
  917. package/frontend-vue/tests/check-list-marker.test.ts +0 -58
  918. package/frontend-vue/tests/chip-group.test.ts +0 -68
  919. package/frontend-vue/tests/choice-cards-columns.test.ts +0 -60
  920. package/frontend-vue/tests/code-block.test.ts +0 -183
  921. package/frontend-vue/tests/code-highlight.test.ts +0 -72
  922. package/frontend-vue/tests/color-mode-server-render.test.ts +0 -84
  923. package/frontend-vue/tests/color-mode-sync.test.ts +0 -320
  924. package/frontend-vue/tests/command-palette-assistant.test.ts +0 -344
  925. package/frontend-vue/tests/command-palette-search-text.test.ts +0 -118
  926. package/frontend-vue/tests/component-id.test.ts +0 -18
  927. package/frontend-vue/tests/composed-text-blocks.test.ts +0 -213
  928. package/frontend-vue/tests/composed-text-more-blocks.test.ts +0 -391
  929. package/frontend-vue/tests/composed-text.test.ts +0 -265
  930. package/frontend-vue/tests/confirm-action-errors.test.ts +0 -324
  931. package/frontend-vue/tests/confirm-dialog-fields.test.ts +0 -283
  932. package/frontend-vue/tests/confirm-from.test.ts +0 -101
  933. package/frontend-vue/tests/confirm-secondary-action.test.ts +0 -267
  934. package/frontend-vue/tests/confirm-typed-text.test.ts +0 -236
  935. package/frontend-vue/tests/context-links.test.ts +0 -220
  936. package/frontend-vue/tests/copy-feedback.test.ts +0 -48
  937. package/frontend-vue/tests/custom-action-confirm-from.test.ts +0 -85
  938. package/frontend-vue/tests/dev-reload-stream.test.ts +0 -139
  939. package/frontend-vue/tests/dev-reload.test.ts +0 -252
  940. package/frontend-vue/tests/download-action-target.test.ts +0 -172
  941. package/frontend-vue/tests/drawer-target-direction.test.ts +0 -206
  942. package/frontend-vue/tests/email-layout.test.ts +0 -186
  943. package/frontend-vue/tests/empty-state-late-slots.test.ts +0 -53
  944. package/frontend-vue/tests/error-page-message.test.ts +0 -121
  945. package/frontend-vue/tests/favicon.test.ts +0 -131
  946. package/frontend-vue/tests/favorite-page.test.ts +0 -104
  947. package/frontend-vue/tests/field-errors.test.ts +0 -247
  948. package/frontend-vue/tests/field-options-i18n.test.ts +0 -41
  949. package/frontend-vue/tests/field-row.test.ts +0 -115
  950. package/frontend-vue/tests/field-suffix-count.test.ts +0 -121
  951. package/frontend-vue/tests/file-constraints.test.ts +0 -72
  952. package/frontend-vue/tests/file-drop-prompt.test.ts +0 -72
  953. package/frontend-vue/tests/file-fields-ssr.test.ts +0 -145
  954. package/frontend-vue/tests/file-read-urls.test.ts +0 -246
  955. package/frontend-vue/tests/file-unavailable.test.ts +0 -117
  956. package/frontend-vue/tests/fixtures/TableCellLayout.vue +0 -73
  957. package/frontend-vue/tests/fixtures/chart-axes.html +0 -39
  958. package/frontend-vue/tests/fixtures/chart-axes.ts +0 -67
  959. package/frontend-vue/tests/fixtures/chart-precision.html +0 -37
  960. package/frontend-vue/tests/fixtures/chart-precision.ts +0 -118
  961. package/frontend-vue/tests/fixtures/dashboard-search-stub.ts +0 -91
  962. package/frontend-vue/tests/fixtures/dataEngine.ts +0 -44
  963. package/frontend-vue/tests/fixtures/theming/app/app.vue +0 -49
  964. package/frontend-vue/tests/fixtures/theming/base/app/app.config.ts +0 -1
  965. package/frontend-vue/tests/fixtures/theming/config.ts +0 -7
  966. package/frontend-vue/tests/fixtures/theming/consumer/app/app.config.ts +0 -15
  967. package/frontend-vue/tests/fixtures/theming/consumer/public/brand/dark.svg +0 -1
  968. package/frontend-vue/tests/fixtures/theming/consumer/public/brand/icon.svg +0 -1
  969. package/frontend-vue/tests/fixtures/theming/consumer/public/brand/light.svg +0 -1
  970. package/frontend-vue/tests/fixtures/theming/consumer.css +0 -19
  971. package/frontend-vue/tests/fixtures/theming/index.html +0 -11
  972. package/frontend-vue/tests/fixtures/theming/main.ts +0 -36
  973. package/frontend-vue/tests/fixtures/theming/runtime.ts +0 -12
  974. package/frontend-vue/tests/fixtures/theming/vite.config.ts +0 -36
  975. package/frontend-vue/tests/flow-canvas-delete-badge.test.ts +0 -88
  976. package/frontend-vue/tests/footer-config.test.ts +0 -135
  977. package/frontend-vue/tests/forgot-validation-resend.test.ts +0 -234
  978. package/frontend-vue/tests/form-action-reset.test.ts +0 -106
  979. package/frontend-vue/tests/form-actions.test.ts +0 -33
  980. package/frontend-vue/tests/form-control-error-state.test.ts +0 -164
  981. package/frontend-vue/tests/form-display-options.test.ts +0 -64
  982. package/frontend-vue/tests/form-enclosing-form.test.ts +0 -120
  983. package/frontend-vue/tests/form-entry-order.test.ts +0 -45
  984. package/frontend-vue/tests/form-footer-kind.test.ts +0 -101
  985. package/frontend-vue/tests/form-load-error.test.ts +0 -229
  986. package/frontend-vue/tests/form-page-url-fill.test.ts +0 -63
  987. package/frontend-vue/tests/form-redirect-placeholders.test.ts +0 -80
  988. package/frontend-vue/tests/form-required-fields.test.ts +0 -148
  989. package/frontend-vue/tests/form-required-legend.test.ts +0 -34
  990. package/frontend-vue/tests/form-required-validation.test.ts +0 -407
  991. package/frontend-vue/tests/form-reset.test.ts +0 -66
  992. package/frontend-vue/tests/form-saved-before-success.test.ts +0 -110
  993. package/frontend-vue/tests/form-section-nav-groups.test.ts +0 -177
  994. package/frontend-vue/tests/form-sections.test.ts +0 -94
  995. package/frontend-vue/tests/form-server-field-errors.test.ts +0 -204
  996. package/frontend-vue/tests/form-submit-clear.test.ts +0 -406
  997. package/frontend-vue/tests/form-submit-only-changed.test.ts +0 -195
  998. package/frontend-vue/tests/form-submit-target.test.ts +0 -28
  999. package/frontend-vue/tests/form-validation.test.ts +0 -213
  1000. package/frontend-vue/tests/github-star-prompt.test.ts +0 -328
  1001. package/frontend-vue/tests/grid-responsive-columns.test.ts +0 -180
  1002. package/frontend-vue/tests/guard.test.ts +0 -242
  1003. package/frontend-vue/tests/header-action-page-query.test.ts +0 -426
  1004. package/frontend-vue/tests/header-action-press-in-place.test.ts +0 -231
  1005. package/frontend-vue/tests/header-actions.test.ts +0 -237
  1006. package/frontend-vue/tests/helpers/api-data-runtime.ts +0 -77
  1007. package/frontend-vue/tests/image-hydration-ids.test.ts +0 -101
  1008. package/frontend-vue/tests/image-reference-preservation.test.ts +0 -266
  1009. package/frontend-vue/tests/input-number-adjust.test.ts +0 -190
  1010. package/frontend-vue/tests/input-number-range.test.ts +0 -135
  1011. package/frontend-vue/tests/input-tags.test.ts +0 -146
  1012. package/frontend-vue/tests/instant-save-badge.test.ts +0 -202
  1013. package/frontend-vue/tests/instant-save.test.ts +0 -217
  1014. package/frontend-vue/tests/invites-edit-modal.test.ts +0 -157
  1015. package/frontend-vue/tests/key-value-list-copy.test.ts +0 -117
  1016. package/frontend-vue/tests/key-value-rows.test.ts +0 -52
  1017. package/frontend-vue/tests/keyboard-platform.test.ts +0 -87
  1018. package/frontend-vue/tests/kpi-no-comparison.test.ts +0 -92
  1019. package/frontend-vue/tests/layout-banners.test.ts +0 -280
  1020. package/frontend-vue/tests/list-row-truncate.test.ts +0 -46
  1021. package/frontend-vue/tests/live-hold-banner.test.ts +0 -95
  1022. package/frontend-vue/tests/live-toggle.test.ts +0 -248
  1023. package/frontend-vue/tests/master-detail-layout.test.ts +0 -53
  1024. package/frontend-vue/tests/member-role-picker.test.ts +0 -255
  1025. package/frontend-vue/tests/menu-hidden-page.test.ts +0 -93
  1026. package/frontend-vue/tests/menu-navigation.test.ts +0 -135
  1027. package/frontend-vue/tests/menu-sync-reconnect.test.ts +0 -47
  1028. package/frontend-vue/tests/metadata-retry.test.ts +0 -202
  1029. package/frontend-vue/tests/meter-block-load-error.test.ts +0 -70
  1030. package/frontend-vue/tests/module-routing.test.ts +0 -155
  1031. package/frontend-vue/tests/module-store-catalog.test.ts +0 -371
  1032. package/frontend-vue/tests/modules-catalog.test.ts +0 -165
  1033. package/frontend-vue/tests/modules-listing-transfer.test.ts +0 -95
  1034. package/frontend-vue/tests/mono-cell-truncate.test.ts +0 -50
  1035. package/frontend-vue/tests/multi-account-validate.test.ts +0 -121
  1036. package/frontend-vue/tests/nav-badge-tones.test.ts +0 -337
  1037. package/frontend-vue/tests/nav-card-badge.test.ts +0 -73
  1038. package/frontend-vue/tests/nav-card-grid-empty-category.test.ts +0 -164
  1039. package/frontend-vue/tests/notification-counts-from-writes.test.ts +0 -223
  1040. package/frontend-vue/tests/notification-counts-transfer.test.ts +0 -88
  1041. package/frontend-vue/tests/notification-inbox-display.test.ts +0 -221
  1042. package/frontend-vue/tests/notification-popover-errors.test.ts +0 -320
  1043. package/frontend-vue/tests/notification-preferences-groups.test.ts +0 -268
  1044. package/frontend-vue/tests/notification-tone-contract.test.ts +0 -70
  1045. package/frontend-vue/tests/nuxt-ui-aria-labels.test.ts +0 -31
  1046. package/frontend-vue/tests/oauth-complete-handoff.test.ts +0 -209
  1047. package/frontend-vue/tests/onboarding-middleware.test.ts +0 -103
  1048. package/frontend-vue/tests/onboarding-register.test.ts +0 -155
  1049. package/frontend-vue/tests/onboarding-transfer.test.ts +0 -106
  1050. package/frontend-vue/tests/otp-input.test.ts +0 -97
  1051. package/frontend-vue/tests/page-data-refresh.test.ts +0 -141
  1052. package/frontend-vue/tests/page-fill-height.test.ts +0 -456
  1053. package/frontend-vue/tests/page-layout-registration.test.ts +0 -71
  1054. package/frontend-vue/tests/page-live-gate.test.ts +0 -241
  1055. package/frontend-vue/tests/page-live-parity.test.ts +0 -367
  1056. package/frontend-vue/tests/page-live-refresh.test.ts +0 -169
  1057. package/frontend-vue/tests/page-no-visible-blocks.test.ts +0 -212
  1058. package/frontend-vue/tests/page-realtime-remount.test.ts +0 -185
  1059. package/frontend-vue/tests/page-record-label.test.ts +0 -46
  1060. package/frontend-vue/tests/page-validation-redirect.test.ts +0 -231
  1061. package/frontend-vue/tests/password-input.test.ts +0 -122
  1062. package/frontend-vue/tests/password-strength-meter.test.ts +0 -33
  1063. package/frontend-vue/tests/period-day-rollover.test.ts +0 -80
  1064. package/frontend-vue/tests/period-draft.test.ts +0 -120
  1065. package/frontend-vue/tests/period-hydration-now.test.ts +0 -185
  1066. package/frontend-vue/tests/period-live-pause.test.ts +0 -110
  1067. package/frontend-vue/tests/period-max-days.test.ts +0 -114
  1068. package/frontend-vue/tests/period-presets.test.ts +0 -108
  1069. package/frontend-vue/tests/period-reader-zone.test.ts +0 -137
  1070. package/frontend-vue/tests/period-relative-refresh.test.ts +0 -61
  1071. package/frontend-vue/tests/period-scope-first-fetch.test.ts +0 -377
  1072. package/frontend-vue/tests/period-selector-parity.test.ts +0 -138
  1073. package/frontend-vue/tests/period-selector-url.test.ts +0 -382
  1074. package/frontend-vue/tests/period-ssr.test.ts +0 -195
  1075. package/frontend-vue/tests/period-url-query.test.ts +0 -403
  1076. package/frontend-vue/tests/permission-preview-partial.test.ts +0 -299
  1077. package/frontend-vue/tests/permission-preview-session.test.ts +0 -69
  1078. package/frontend-vue/tests/permission-preview.test.ts +0 -196
  1079. package/frontend-vue/tests/permission-veil-stable-content.test.ts +0 -191
  1080. package/frontend-vue/tests/permissions-transfer.test.ts +0 -194
  1081. package/frontend-vue/tests/post-login-redirect.test.ts +0 -92
  1082. package/frontend-vue/tests/preferences-cookie-size.test.ts +0 -311
  1083. package/frontend-vue/tests/profile-personal-info-ssr.test.ts +0 -150
  1084. package/frontend-vue/tests/profile-preferences-summary.test.ts +0 -538
  1085. package/frontend-vue/tests/profile-security-summary.test.ts +0 -121
  1086. package/frontend-vue/tests/quick-action-intent.test.ts +0 -74
  1087. package/frontend-vue/tests/quick-actions.test.ts +0 -55
  1088. package/frontend-vue/tests/realtime-auth-recovery.test.ts +0 -146
  1089. package/frontend-vue/tests/realtime-reconnect.test.ts +0 -234
  1090. package/frontend-vue/tests/record-card.test.ts +0 -73
  1091. package/frontend-vue/tests/regional-format.test.ts +0 -134
  1092. package/frontend-vue/tests/regional-preferences.test.ts +0 -209
  1093. package/frontend-vue/tests/relation-badges.test.ts +0 -32
  1094. package/frontend-vue/tests/relation-value.test.ts +0 -39
  1095. package/frontend-vue/tests/resolve-dms-component.test.ts +0 -47
  1096. package/frontend-vue/tests/response-warning-toast.test.ts +0 -57
  1097. package/frontend-vue/tests/revealed-backup-codes.test.ts +0 -58
  1098. package/frontend-vue/tests/role-permission-tree.test.ts +0 -564
  1099. package/frontend-vue/tests/role-permissions.test.ts +0 -661
  1100. package/frontend-vue/tests/roles-name-errors.test.ts +0 -294
  1101. package/frontend-vue/tests/route-param-filter-defaults.test.ts +0 -59
  1102. package/frontend-vue/tests/route-param-occurrences.test.ts +0 -118
  1103. package/frontend-vue/tests/row-side-panel.test.ts +0 -831
  1104. package/frontend-vue/tests/save-bar.test.ts +0 -167
  1105. package/frontend-vue/tests/save-status-error.test.ts +0 -66
  1106. package/frontend-vue/tests/scroll-to-block.test.ts +0 -171
  1107. package/frontend-vue/tests/search-input.test.ts +0 -91
  1108. package/frontend-vue/tests/section-description-only.test.ts +0 -33
  1109. package/frontend-vue/tests/security-email-panel.test.ts +0 -378
  1110. package/frontend-vue/tests/security-password-modal.test.ts +0 -128
  1111. package/frontend-vue/tests/security-password-panel.test.ts +0 -267
  1112. package/frontend-vue/tests/security-sessions-load-error.test.ts +0 -125
  1113. package/frontend-vue/tests/security-status-load-error.test.ts +0 -106
  1114. package/frontend-vue/tests/selection-scope.test.ts +0 -24
  1115. package/frontend-vue/tests/server-routes-vs-pages.test.ts +0 -26
  1116. package/frontend-vue/tests/server-routes.test.ts +0 -582
  1117. package/frontend-vue/tests/session-handoff.test.ts +0 -60
  1118. package/frontend-vue/tests/settings-navigation.test.ts +0 -170
  1119. package/frontend-vue/tests/settings-reads-ssr.test.ts +0 -232
  1120. package/frontend-vue/tests/settings-search-shortcuts.test.ts +0 -208
  1121. package/frontend-vue/tests/shortcuts-aggregate.test.ts +0 -48
  1122. package/frontend-vue/tests/side-panels.test.ts +0 -477
  1123. package/frontend-vue/tests/sidebar-footer-navigation.test.ts +0 -138
  1124. package/frontend-vue/tests/sidebar-search-hint.test.ts +0 -191
  1125. package/frontend-vue/tests/sidebar-widget-position.test.ts +0 -117
  1126. package/frontend-vue/tests/sign-in-exit-history.test.ts +0 -219
  1127. package/frontend-vue/tests/signup-invitation-link.test.ts +0 -247
  1128. package/frontend-vue/tests/site-layout-categories.test.ts +0 -42
  1129. package/frontend-vue/tests/site-layout-hydration.test.ts +0 -82
  1130. package/frontend-vue/tests/site-layout-refresh.test.ts +0 -131
  1131. package/frontend-vue/tests/site-layout-rendered.test.ts +0 -103
  1132. package/frontend-vue/tests/site-layout-resync.test.ts +0 -87
  1133. package/frontend-vue/tests/sse-stream.test.ts +0 -268
  1134. package/frontend-vue/tests/ssr-guard-preload.test.ts +0 -188
  1135. package/frontend-vue/tests/stat-cell-shared.test.ts +0 -64
  1136. package/frontend-vue/tests/stat-group-detail-lines.test.ts +0 -63
  1137. package/frontend-vue/tests/string-type-parser.test.ts +0 -50
  1138. package/frontend-vue/tests/tab-fit.test.ts +0 -99
  1139. package/frontend-vue/tests/tab-url-slot.test.ts +0 -150
  1140. package/frontend-vue/tests/tab-without-component-id.test.ts +0 -51
  1141. package/frontend-vue/tests/table-actions-column-width.test.ts +0 -135
  1142. package/frontend-vue/tests/table-actions-search-label.test.ts +0 -224
  1143. package/frontend-vue/tests/table-async-data-key.test.ts +0 -33
  1144. package/frontend-vue/tests/table-cell-sublines.test.ts +0 -481
  1145. package/frontend-vue/tests/table-cell-tones.test.ts +0 -211
  1146. package/frontend-vue/tests/table-cell-wrap.test.ts +0 -61
  1147. package/frontend-vue/tests/table-clear-filters.test.ts +0 -374
  1148. package/frontend-vue/tests/table-column-visibility.test.ts +0 -20
  1149. package/frontend-vue/tests/table-data-ssr.test.ts +0 -195
  1150. package/frontend-vue/tests/table-density-menu.test.ts +0 -108
  1151. package/frontend-vue/tests/table-list-data-requests.test.ts +0 -154
  1152. package/frontend-vue/tests/table-live-hold.test.ts +0 -340
  1153. package/frontend-vue/tests/table-metric-cells.test.ts +0 -165
  1154. package/frontend-vue/tests/table-page-size-options.test.ts +0 -20
  1155. package/frontend-vue/tests/table-pills-cell.test.ts +0 -126
  1156. package/frontend-vue/tests/table-retry-loading.test.ts +0 -37
  1157. package/frontend-vue/tests/table-row-action-errors.test.ts +0 -386
  1158. package/frontend-vue/tests/table-row-action-labels.test.ts +0 -181
  1159. package/frontend-vue/tests/table-row-hover.test.ts +0 -182
  1160. package/frontend-vue/tests/table-scroll-area.test.ts +0 -37
  1161. package/frontend-vue/tests/table-source-navigation.test.ts +0 -122
  1162. package/frontend-vue/tests/table-source-period-scope.test.ts +0 -171
  1163. package/frontend-vue/tests/table-url-filters.test.ts +0 -158
  1164. package/frontend-vue/tests/table-view-bulk-actions.test.ts +0 -154
  1165. package/frontend-vue/tests/table-view-bulk-drawer.test.ts +0 -451
  1166. package/frontend-vue/tests/table-view-card-props.test.ts +0 -215
  1167. package/frontend-vue/tests/table-view-cards-reorder.test.ts +0 -234
  1168. package/frontend-vue/tests/table-view-cards-reread.test.ts +0 -77
  1169. package/frontend-vue/tests/table-view-chrome.test.ts +0 -175
  1170. package/frontend-vue/tests/table-view-display-registry.test.ts +0 -59
  1171. package/frontend-vue/tests/table-view-escape-shortcut.test.ts +0 -141
  1172. package/frontend-vue/tests/table-view-expanded-band.test.ts +0 -143
  1173. package/frontend-vue/tests/table-view-expanded-row-details.test.ts +0 -88
  1174. package/frontend-vue/tests/table-view-expanded-rows.test.ts +0 -55
  1175. package/frontend-vue/tests/table-view-form-texts.test.ts +0 -124
  1176. package/frontend-vue/tests/table-view-grouped.test.ts +0 -222
  1177. package/frontend-vue/tests/table-view-hidden-filters-page.test.ts +0 -134
  1178. package/frontend-vue/tests/table-view-pagination-modes.test.ts +0 -48
  1179. package/frontend-vue/tests/table-view-pinned-rows.test.ts +0 -128
  1180. package/frontend-vue/tests/table-view-record-link.test.ts +0 -190
  1181. package/frontend-vue/tests/table-view-refresh.test.ts +0 -67
  1182. package/frontend-vue/tests/table-view-reorder.test.ts +0 -122
  1183. package/frontend-vue/tests/table-view-selection-footer-empty.test.ts +0 -379
  1184. package/frontend-vue/tests/table-view-sortable-columns.test.ts +0 -338
  1185. package/frontend-vue/tests/table-view-sources.test.ts +0 -222
  1186. package/frontend-vue/tests/table-view-url-tab.test.ts +0 -183
  1187. package/frontend-vue/tests/table-view-views.test.ts +0 -581
  1188. package/frontend-vue/tests/tag-values.test.ts +0 -32
  1189. package/frontend-vue/tests/template-tokens.test.ts +0 -235
  1190. package/frontend-vue/tests/time-span.test.ts +0 -37
  1191. package/frontend-vue/tests/tone.test.ts +0 -26
  1192. package/frontend-vue/tests/top-list-card-actions.test.ts +0 -94
  1193. package/frontend-vue/tests/top-list-card-period-badge-ssr.test.ts +0 -212
  1194. package/frontend-vue/tests/top-list-card-period-badge.test.ts +0 -79
  1195. package/frontend-vue/tests/top-list-card-value-suffix.test.ts +0 -110
  1196. package/frontend-vue/tests/trailing-deduper.test.ts +0 -96
  1197. package/frontend-vue/tests/trend-delta-format.test.ts +0 -24
  1198. package/frontend-vue/tests/unsaved-changes.test.ts +0 -184
  1199. package/frontend-vue/tests/upload-forbidden-headers.test.ts +0 -52
  1200. package/frontend-vue/tests/url-interpolation.test.ts +0 -51
  1201. package/frontend-vue/tests/use-api-data-update.test.ts +0 -119
  1202. package/frontend-vue/tests/use-api-data.test.ts +0 -410
  1203. package/frontend-vue/tests/user-language.test.ts +0 -61
  1204. package/frontend-vue/tests/widget-label-i18n.test.ts +0 -182
  1205. package/frontend-vue/vitest.config.ts +0 -36
  1206. package/skills/dms-dev/SKILL.md +0 -119
  1207. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/Geist-Italic-Variable.woff2 +0 -0
  1208. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/Geist-Variable.woff2 +0 -0
  1209. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/GeistMono-Italic-Variable.woff2 +0 -0
  1210. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/GeistMono-Variable.woff2 +0 -0
  1211. /package/frontend-vue/layers/dms-layout/{public → app/assets}/fonts/LICENSE.txt +0 -0
  1212. /package/skills/{dms-dev → dms-project}/scripts/dms-dev.sh +0 -0
@@ -3,6 +3,7 @@ import { useRealtimeTopic } from "../../../../../dms-core/app/composables/realti
3
3
  import {
4
4
  onLivePageBlocksRefresh,
5
5
  onPageBlocksRefresh,
6
+ waitForPageBlocksRefresh,
6
7
  } from "../../../utils/blockRefresh";
7
8
  import { type LiveGate, useLiveGate } from "../live/currentPageLive";
8
9
 
@@ -15,15 +16,28 @@ import { type LiveGate, useLiveGate } from "../live/currentPageLive";
15
16
  * go through the page's gate: in Direct at most once per `maxRate`, in Pause
16
17
  * not at all — the block counts what it missed and refetches once on resume.
17
18
  * A refresh the user asked for (refreshPageBlocks) reads at once, paused or
18
- * not. The returned gate says what was missed.
19
+ * not, and the promise `onRefresh` returns then, if any, is one
20
+ * `refreshPageBlocks()` waits for. The returned gate says what was missed.
19
21
  */
20
22
  export function useRefreshTriggers(
21
23
  realtimeTopic: string | string[] | undefined,
22
- onRefresh: () => void,
24
+ onRefresh: () => void | Promise<unknown>,
23
25
  ): LiveGate {
24
- const gate = useLiveGate(onRefresh);
26
+ let pageRefresh: Event | undefined;
27
+ const gate = useLiveGate(() => {
28
+ const work = onRefresh();
29
+ if (pageRefresh && work) waitForPageBlocksRefresh(pageRefresh, work);
30
+ });
25
31
  subscribeRealtimeTopics(realtimeTopic, gate.trigger);
26
- subscribePageRefresh(gate);
32
+ subscribePageRefresh(gate, (event) => {
33
+ // The gate reads at once on a page refresh: the read starts in this call.
34
+ pageRefresh = event;
35
+ try {
36
+ gate.catchUp();
37
+ } finally {
38
+ pageRefresh = undefined;
39
+ }
40
+ });
27
41
  return gate;
28
42
  }
29
43
 
@@ -43,11 +57,14 @@ function subscribeRealtimeTopics(
43
57
 
44
58
  // Mounted only: the page refresh is a browser event, and a block the server
45
59
  // renders has nothing to refetch.
46
- function subscribePageRefresh(gate: LiveGate): void {
60
+ function subscribePageRefresh(
61
+ gate: LiveGate,
62
+ onPageRefresh: (event: Event) => void,
63
+ ): void {
47
64
  const unsubscribes: Array<() => void> = [];
48
65
  onMounted(() => {
49
66
  unsubscribes.push(
50
- onPageBlocksRefresh(() => gate.catchUp()),
67
+ onPageBlocksRefresh(onPageRefresh),
51
68
  onLivePageBlocksRefresh(gate.trigger),
52
69
  );
53
70
  });
@@ -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
+ }