@wildo-ai/saas-frontend-lib 1.1.5 → 1.1.6

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 (777) hide show
  1. package/dist/esm/components/actions/action-bar.d.ts +15 -0
  2. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  3. package/dist/esm/components/actions/action-bar.js +15 -0
  4. package/dist/esm/components/actions/action-bar.js.map +1 -1
  5. package/dist/esm/components/ai-elements/decision/approval.d.ts +97 -7
  6. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  7. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  8. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
  9. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +8 -3
  10. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
  11. package/dist/esm/components/auth/Auth_EnrollmentRequired.d.ts.map +1 -1
  12. package/dist/esm/components/auth/Auth_EnrollmentRequired.js +5 -1
  13. package/dist/esm/components/auth/Auth_EnrollmentRequired.js.map +1 -1
  14. package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
  15. package/dist/esm/components/auth/Auth_Main.js +1 -4
  16. package/dist/esm/components/auth/Auth_Main.js.map +1 -1
  17. package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
  18. package/dist/esm/components/auth/Auth_Register.js +1 -3
  19. package/dist/esm/components/auth/Auth_Register.js.map +1 -1
  20. package/dist/esm/components/auth/StepUpAuthDialog.d.ts +7 -0
  21. package/dist/esm/components/auth/StepUpAuthDialog.d.ts.map +1 -1
  22. package/dist/esm/components/auth/StepUpAuthDialog.js +13 -7
  23. package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
  24. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
  25. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +32 -33
  26. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
  27. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
  28. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +18 -20
  29. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
  30. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.d.ts.map +1 -1
  31. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js +2 -3
  32. package/dist/esm/components/auth/methods/ExternalOAuth2AuthMethod.js.map +1 -1
  33. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts +13 -16
  34. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.d.ts.map +1 -1
  35. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js +18 -15
  36. package/dist/esm/components/auth/utils/oauth-provider-display-label.frontend.utils.js.map +1 -1
  37. package/dist/esm/components/billing/billing-invoice-history.js +2 -2
  38. package/dist/esm/components/billing/billing-invoice-history.js.map +1 -1
  39. package/dist/esm/components/billing/billing-portal-link.js +2 -2
  40. package/dist/esm/components/billing/billing-portal-link.js.map +1 -1
  41. package/dist/esm/components/billing/billing-pricing-table.d.ts +33 -1
  42. package/dist/esm/components/billing/billing-pricing-table.d.ts.map +1 -1
  43. package/dist/esm/components/billing/billing-pricing-table.js +34 -5
  44. package/dist/esm/components/billing/billing-pricing-table.js.map +1 -1
  45. package/dist/esm/components/billing/billing-subscription-status.js +2 -2
  46. package/dist/esm/components/billing/billing-subscription-status.js.map +1 -1
  47. package/dist/esm/components/billing/billing-usage-dashboard.d.ts +2 -0
  48. package/dist/esm/components/billing/billing-usage-dashboard.d.ts.map +1 -1
  49. package/dist/esm/components/billing/billing-usage-dashboard.js +1 -0
  50. package/dist/esm/components/billing/billing-usage-dashboard.js.map +1 -1
  51. package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
  52. package/dist/esm/components/data-display/DisplayField.js +15 -1
  53. package/dist/esm/components/data-display/DisplayField.js.map +1 -1
  54. package/dist/esm/components/data-display/DisplayFieldArray.d.ts.map +1 -1
  55. package/dist/esm/components/data-display/DisplayFieldArray.js +11 -0
  56. package/dist/esm/components/data-display/DisplayFieldArray.js.map +1 -1
  57. package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
  58. package/dist/esm/components/data-display/DisplayFieldEditable.js +2 -2
  59. package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
  60. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +12 -2
  61. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
  62. package/dist/esm/components/data-display/DisplayFieldEditableArray.js +3 -2
  63. package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
  64. package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
  65. package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
  66. package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
  67. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.d.ts.map +1 -1
  68. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js +8 -2
  69. package/dist/esm/components/data-display/DisplayFieldReadOnlyArraySection.js.map +1 -1
  70. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
  71. package/dist/esm/components/data-display/DisplayValueDispatcher.js +18 -4
  72. package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
  73. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
  74. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +61 -3
  75. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
  76. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +7 -5
  77. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
  78. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
  79. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +11 -1
  80. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
  81. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +36 -11
  82. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
  83. package/dist/esm/components/data-display/display-field-resolved-props.d.ts +6 -0
  84. package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
  85. package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
  86. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +23 -0
  87. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -0
  88. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +35 -0
  89. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -0
  90. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +47 -0
  91. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -0
  92. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +124 -0
  93. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -0
  94. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts +8 -0
  95. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.d.ts.map +1 -0
  96. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +46 -0
  97. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -0
  98. package/dist/esm/components/feedback/resource-empty-state.d.ts +21 -8
  99. package/dist/esm/components/feedback/resource-empty-state.d.ts.map +1 -1
  100. package/dist/esm/components/feedback/resource-empty-state.js +56 -26
  101. package/dist/esm/components/feedback/resource-empty-state.js.map +1 -1
  102. package/dist/esm/components/flows-actors/approval.d.ts +29 -7
  103. package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
  104. package/dist/esm/components/flows-actors/approval.js +231 -101
  105. package/dist/esm/components/flows-actors/approval.js.map +1 -1
  106. package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
  107. package/dist/esm/components/flows-actors/approval.labels.js +57 -0
  108. package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
  109. package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
  110. package/dist/esm/components/flows-actors/system-catalog.js +4 -4
  111. package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
  112. package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
  113. package/dist/esm/components/flows-actors/system-catalog.labels.js +0 -5
  114. package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
  115. package/dist/esm/components/form/Form.d.ts +2 -2
  116. package/dist/esm/components/form/Form.js +2 -2
  117. package/dist/esm/components/form/Form.js.map +1 -1
  118. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +28 -3
  119. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
  120. package/dist/esm/components/form/automated/AutomatedArrayField.js +43 -14
  121. package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
  122. package/dist/esm/components/form/automated/FormField.d.ts +3 -0
  123. package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
  124. package/dist/esm/components/form/automated/FormField.js +60 -21
  125. package/dist/esm/components/form/automated/FormField.js.map +1 -1
  126. package/dist/esm/components/form/automated/FormFieldArray.d.ts +6 -3
  127. package/dist/esm/components/form/automated/FormFieldArray.d.ts.map +1 -1
  128. package/dist/esm/components/form/automated/FormFieldArray.js +3 -2
  129. package/dist/esm/components/form/automated/FormFieldArray.js.map +1 -1
  130. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +5 -4
  131. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
  132. package/dist/esm/components/form/automated/ResourceAutomatedForm.js +148 -55
  133. package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
  134. package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts +30 -0
  135. package/dist/esm/components/form/automated/ResourceFormActionsContext.d.ts.map +1 -1
  136. package/dist/esm/components/form/automated/ResourceFormActionsContext.js +30 -1
  137. package/dist/esm/components/form/automated/ResourceFormActionsContext.js.map +1 -1
  138. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts +79 -0
  139. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.d.ts.map +1 -0
  140. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js +203 -0
  141. package/dist/esm/components/form/automated/TemplatePlacedFieldsContext.js.map +1 -0
  142. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +12 -0
  143. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
  144. package/dist/esm/components/form/automated/automated-form-submit.utils.js +11 -0
  145. package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
  146. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
  147. package/dist/esm/components/form/chromes/FormFieldChrome.js +2 -2
  148. package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
  149. package/dist/esm/components/form/combobox.d.ts +7 -0
  150. package/dist/esm/components/form/combobox.d.ts.map +1 -1
  151. package/dist/esm/components/form/combobox.js.map +1 -1
  152. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
  153. package/dist/esm/components/form/controls/form-field-checkbox-group.js +13 -0
  154. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
  155. package/dist/esm/components/form/fields/form-field-address.d.ts +58 -0
  156. package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
  157. package/dist/esm/components/form/fields/form-field-address.js +34 -6
  158. package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
  159. package/dist/esm/components/form/fields/form-field-address.labels.d.ts.map +1 -1
  160. package/dist/esm/components/form/fields/form-field-address.labels.js +60 -1
  161. package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
  162. package/dist/esm/components/form/fields/form-field-file.d.ts +0 -12
  163. package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
  164. package/dist/esm/components/form/fields/form-field-file.js +34 -13
  165. package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
  166. package/dist/esm/components/form/fields/form-field-file.labels.d.ts.map +1 -1
  167. package/dist/esm/components/form/fields/form-field-file.labels.js +46 -0
  168. package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
  169. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +73 -0
  170. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -0
  171. package/dist/esm/components/form/fields/form-field-string-organization-role.js +64 -0
  172. package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -0
  173. package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
  174. package/dist/esm/components/form/fields/form-field-string.js +8 -1
  175. package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
  176. package/dist/esm/components/form/fields/form-field-string.labels.d.ts.map +1 -1
  177. package/dist/esm/components/form/fields/form-field-string.labels.js +4 -0
  178. package/dist/esm/components/form/fields/form-field-string.labels.js.map +1 -1
  179. package/dist/esm/components/form/validation-errors/FormErrorSummary.js +1 -1
  180. package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
  181. package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts +31 -0
  182. package/dist/esm/components/form/validation-errors/resolver-error-nesting.d.ts.map +1 -0
  183. package/dist/esm/components/form/validation-errors/resolver-error-nesting.js +81 -0
  184. package/dist/esm/components/form/validation-errors/resolver-error-nesting.js.map +1 -0
  185. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts +14 -1
  186. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.d.ts.map +1 -1
  187. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js +14 -0
  188. package/dist/esm/components/form/validation-errors/resource-error-notification-context.utils.js.map +1 -1
  189. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +22 -0
  190. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
  191. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +1 -22
  192. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
  193. package/dist/esm/components/layout/resizable.d.ts +11 -0
  194. package/dist/esm/components/layout/resizable.d.ts.map +1 -1
  195. package/dist/esm/components/layout/resizable.js.map +1 -1
  196. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts +11 -1
  197. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.d.ts.map +1 -1
  198. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js +15 -3
  199. package/dist/esm/components/navigation/app-level/ApplicationLevel_NavigationBack.js.map +1 -1
  200. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts +2 -2
  201. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.d.ts.map +1 -1
  202. package/dist/esm/components/navigation/app-level/ApplicationLevel_StatusBar.js.map +1 -1
  203. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.d.ts +2 -2
  204. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js +2 -2
  205. package/dist/esm/components/navigation/app-level/HostedComponentInteractionsProvider.js.map +1 -1
  206. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +18 -20
  207. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
  208. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
  209. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +7 -1
  210. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
  211. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.d.ts.map +1 -1
  212. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js +4 -1
  213. package/dist/esm/components/navigation/app-level/useMenuBarBehavior.js.map +1 -1
  214. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
  215. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +18 -2
  216. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
  217. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
  218. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +82 -10
  219. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
  220. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts +2 -2
  221. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.d.ts.map +1 -1
  222. package/dist/esm/components/navigation/app-level/useStatusBarBehavior.js.map +1 -1
  223. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
  224. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +8 -1
  225. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
  226. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +8 -2
  227. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
  228. package/dist/esm/components/resources/ResourceCollectionToolbar.js +6 -2
  229. package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
  230. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
  231. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +31 -16
  232. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
  233. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.d.ts.map +1 -1
  234. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js +23 -8
  235. package/dist/esm/components/resources/ResourceLayout_ContainerDialogs.js.map +1 -1
  236. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +2 -2
  237. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
  238. package/dist/esm/components/resources/ResourceLayout_Header.d.ts +13 -0
  239. package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
  240. package/dist/esm/components/resources/ResourceLayout_Header.js +55 -28
  241. package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
  242. package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
  243. package/dist/esm/components/resources/ResourceLayout_List.js +41 -20
  244. package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
  245. package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
  246. package/dist/esm/components/resources/ResourceLayout_List.labels.js +1 -2
  247. package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
  248. package/dist/esm/components/resources/ResourceLayout_Read.d.ts +9 -4
  249. package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
  250. package/dist/esm/components/resources/ResourceLayout_Read.js +30 -11
  251. package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
  252. package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
  253. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +4 -2
  254. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
  255. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
  256. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +6 -2
  257. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
  258. package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
  259. package/dist/esm/components/resources/ResourceLayout_Search.js +30 -14
  260. package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
  261. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
  262. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +14 -198
  263. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
  264. package/dist/esm/components/resources/ResourceLayout_Update.d.ts +2 -2
  265. package/dist/esm/components/resources/ResourceLayout_Update.js +2 -2
  266. package/dist/esm/components/resources/ResourceLayout_Update.js.map +1 -1
  267. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
  268. package/dist/esm/components/resources/ResourceListItemRenderer.js +69 -39
  269. package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
  270. package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts +32 -0
  271. package/dist/esm/components/resources/ResourceOperationActionDropdown.d.ts.map +1 -0
  272. package/dist/esm/components/resources/ResourceOperationActionDropdown.js +130 -0
  273. package/dist/esm/components/resources/ResourceOperationActionDropdown.js.map +1 -0
  274. package/dist/esm/components/resources/collection-create-placement.utils.d.ts +32 -0
  275. package/dist/esm/components/resources/collection-create-placement.utils.d.ts.map +1 -0
  276. package/dist/esm/components/resources/collection-create-placement.utils.js +37 -0
  277. package/dist/esm/components/resources/collection-create-placement.utils.js.map +1 -0
  278. package/dist/esm/components/resources/embeds/RelatedResourcePreview.d.ts.map +1 -1
  279. package/dist/esm/components/resources/embeds/RelatedResourcePreview.js +5 -1
  280. package/dist/esm/components/resources/embeds/RelatedResourcePreview.js.map +1 -1
  281. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts +8 -1
  282. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
  283. package/dist/esm/components/resources/embeds/RelatedResourceSections.js +49 -2
  284. package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
  285. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +22 -0
  286. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
  287. package/dist/esm/components/resources/embeds/ResourceEmbeds.js +85 -2
  288. package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
  289. package/dist/esm/components/resources/resourceLayout.utils.d.ts +14 -0
  290. package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
  291. package/dist/esm/components/resources/resourceLayout.utils.js +22 -0
  292. package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
  293. package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
  294. package/dist/esm/components/resources/skeleton/ArrayField.js +3 -0
  295. package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
  296. package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
  297. package/dist/esm/components/resources/skeleton/FormLayout.js +33 -1
  298. package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
  299. package/dist/esm/components/resources/skeleton/ObjectScope.d.ts.map +1 -1
  300. package/dist/esm/components/resources/skeleton/ObjectScope.js +3 -0
  301. package/dist/esm/components/resources/skeleton/ObjectScope.js.map +1 -1
  302. package/dist/esm/components/resources/skeleton/Section.d.ts +12 -0
  303. package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
  304. package/dist/esm/components/resources/skeleton/Section.js +28 -2
  305. package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
  306. package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts +70 -0
  307. package/dist/esm/components/resources/skeleton/SectionFieldsContext.d.ts.map +1 -1
  308. package/dist/esm/components/resources/skeleton/SectionFieldsContext.js +157 -1
  309. package/dist/esm/components/resources/skeleton/SectionFieldsContext.js.map +1 -1
  310. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +6 -0
  311. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
  312. package/dist/esm/components/resources/skeleton/WizardLayout.js +13 -2
  313. package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
  314. package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
  315. package/dist/esm/components/resources/skeleton/WizardStep.js +2 -1
  316. package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
  317. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
  318. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +61 -15
  319. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
  320. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +24 -2
  321. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
  322. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +69 -1
  323. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
  324. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
  325. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +18 -19
  326. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
  327. package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
  328. package/dist/esm/components/sections/ContentSectionContainer.js +5 -4
  329. package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
  330. package/dist/esm/components/sections/stepper.d.ts +5 -0
  331. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  332. package/dist/esm/components/sections/stepper.js.map +1 -1
  333. package/dist/esm/components/sections/surface.d.ts.map +1 -1
  334. package/dist/esm/components/sections/surface.js +12 -3
  335. package/dist/esm/components/sections/surface.js.map +1 -1
  336. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +43 -0
  337. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts.map +1 -0
  338. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +129 -0
  339. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -0
  340. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts +3 -0
  341. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.d.ts.map +1 -0
  342. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +34 -0
  343. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -0
  344. package/dist/esm/components/settings/AppPage_AppearanceSettings.d.ts.map +1 -1
  345. package/dist/esm/components/settings/AppPage_AppearanceSettings.js +9 -11
  346. package/dist/esm/components/settings/AppPage_AppearanceSettings.js.map +1 -1
  347. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.d.ts.map +1 -1
  348. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js +3 -2
  349. package/dist/esm/components/settings/AppPage_AppearanceSettings.labels.js.map +1 -1
  350. package/dist/esm/components/settings/AppPage_BillingSettings.d.ts +4 -2
  351. package/dist/esm/components/settings/AppPage_BillingSettings.d.ts.map +1 -1
  352. package/dist/esm/components/settings/AppPage_BillingSettings.js +21 -3
  353. package/dist/esm/components/settings/AppPage_BillingSettings.js.map +1 -1
  354. package/dist/esm/components/settings/AppPage_BillingSettings.labels.d.ts.map +1 -1
  355. package/dist/esm/components/settings/AppPage_BillingSettings.labels.js +5 -10
  356. package/dist/esm/components/settings/AppPage_BillingSettings.labels.js.map +1 -1
  357. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +58 -0
  358. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
  359. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +243 -40
  360. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
  361. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
  362. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +67 -6
  363. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
  364. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
  365. package/dist/esm/components/settings/AppPage_InvitationsSettings.js +19 -11
  366. package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
  367. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
  368. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +4 -2
  369. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
  370. package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
  371. package/dist/esm/components/settings/SettingsHub.js +3 -0
  372. package/dist/esm/components/settings/SettingsHub.js.map +1 -1
  373. package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
  374. package/dist/esm/components/settings/SettingsResourceOperationPanel.js +16 -1
  375. package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
  376. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +59 -0
  377. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -0
  378. package/dist/esm/components/settings/useOwnerProviderConnections.js +136 -0
  379. package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -0
  380. package/dist/esm/components/views/chart-view/chart-view.utils.d.ts +5 -0
  381. package/dist/esm/components/views/chart-view/chart-view.utils.d.ts.map +1 -1
  382. package/dist/esm/components/views/chart-view/chart-view.utils.js +5 -0
  383. package/dist/esm/components/views/chart-view/chart-view.utils.js.map +1 -1
  384. package/dist/esm/components/views/chart-view/useResourceChartData.d.ts +50 -0
  385. package/dist/esm/components/views/chart-view/useResourceChartData.d.ts.map +1 -0
  386. package/dist/esm/components/views/chart-view/useResourceChartData.js +72 -0
  387. package/dist/esm/components/views/chart-view/useResourceChartData.js.map +1 -0
  388. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
  389. package/dist/esm/components/views/composite-view/CompositeLayout.js +2 -1
  390. package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
  391. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts +86 -0
  392. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -0
  393. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +187 -0
  394. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -0
  395. package/dist/esm/core/app-shell/PortalContainerContext.d.ts +5 -2
  396. package/dist/esm/core/app-shell/PortalContainerContext.d.ts.map +1 -1
  397. package/dist/esm/core/app-shell/PortalContainerContext.js +5 -2
  398. package/dist/esm/core/app-shell/PortalContainerContext.js.map +1 -1
  399. package/dist/esm/core/app-shell/app-shell.schemas.d.ts +18 -9
  400. package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
  401. package/dist/esm/core/app-shell/app-shell.schemas.js +1 -0
  402. package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
  403. package/dist/esm/core/app-shell/useAppShellLayout.d.ts +10 -0
  404. package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
  405. package/dist/esm/core/app-shell/useAppShellLayout.js +28 -5
  406. package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
  407. package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
  408. package/dist/esm/core/app-shell/usePublicShellLayout.js +38 -0
  409. package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
  410. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +15 -1
  411. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
  412. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +47 -13
  413. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
  414. package/dist/esm/core/billing/BillingContext.d.ts +25 -2
  415. package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
  416. package/dist/esm/core/billing/BillingContext.js +16 -25
  417. package/dist/esm/core/billing/BillingContext.js.map +1 -1
  418. package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts +11 -3
  419. package/dist/esm/core/billing/billing-provider-display.frontend.utils.d.ts.map +1 -1
  420. package/dist/esm/core/billing/billing-provider-display.frontend.utils.js +14 -8
  421. package/dist/esm/core/billing/billing-provider-display.frontend.utils.js.map +1 -1
  422. package/dist/esm/core/billing/useBillingPlanChange.d.ts.map +1 -1
  423. package/dist/esm/core/billing/useBillingPlanChange.js +2 -0
  424. package/dist/esm/core/billing/useBillingPlanChange.js.map +1 -1
  425. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
  426. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +1 -0
  427. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
  428. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts +29 -229
  429. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.d.ts.map +1 -1
  430. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js +29 -327
  431. package/dist/esm/core/components-registry/provider-component-registry.frontend.service.js.map +1 -1
  432. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts +17 -27
  433. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.d.ts.map +1 -1
  434. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js +28 -48
  435. package/dist/esm/core/components-registry/useProviderComponent.frontend.hooks.js.map +1 -1
  436. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +21 -11
  437. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
  438. package/dist/esm/core/config/app-configuration-frontend.schemas.js +4 -4
  439. package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
  440. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +17 -0
  441. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
  442. package/dist/esm/core/config/app-level-components.frontend.schemas.js +17 -0
  443. package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
  444. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +10 -10
  445. package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
  446. package/dist/esm/core/config/engine-settings-destinations.js +221 -6
  447. package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
  448. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +8 -0
  449. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
  450. package/dist/esm/core/config/launcher-items.frontend.schemas.js +1 -0
  451. package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
  452. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +10 -1
  453. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
  454. package/dist/esm/core/config/settings-hub.frontend.schemas.js +9 -0
  455. package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
  456. package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
  457. package/dist/esm/core/config/verify-launcher-content.js +30 -19
  458. package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
  459. package/dist/esm/core/errors/ErrorContext.d.ts.map +1 -1
  460. package/dist/esm/core/errors/ErrorContext.js +9 -1
  461. package/dist/esm/core/errors/ErrorContext.js.map +1 -1
  462. package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
  463. package/dist/esm/core/errors/GlobalErrorHandler.js +5 -4
  464. package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
  465. package/dist/esm/core/errors/RouterErrorBoundary.js +1 -1
  466. package/dist/esm/core/errors/RouterErrorBoundary.js.map +1 -1
  467. package/dist/esm/core/errors/errors-builder.frontend.services.d.ts +2 -2
  468. package/dist/esm/core/errors/errors-builder.frontend.services.d.ts.map +1 -1
  469. package/dist/esm/core/errors/errors-builder.frontend.services.js +4 -4
  470. package/dist/esm/core/errors/errors-builder.frontend.services.js.map +1 -1
  471. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +1 -1
  472. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
  473. package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
  474. package/dist/esm/core/events/NotificationContext.js +23 -5
  475. package/dist/esm/core/events/NotificationContext.js.map +1 -1
  476. package/dist/esm/core/events/events.frontend.schemas.d.ts +110 -43
  477. package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
  478. package/dist/esm/core/events/events.frontend.schemas.js +89 -15
  479. package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
  480. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts +2 -0
  481. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
  482. package/dist/esm/core/execution/useExecutionParticipationRMM.js +2 -1
  483. package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
  484. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts +1 -1
  485. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
  486. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +5 -2
  487. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
  488. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts +63 -0
  489. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.d.ts.map +1 -0
  490. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js +131 -0
  491. package/dist/esm/core/external-providers/ConsentBasedProviderSdks.js.map +1 -0
  492. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts +61 -0
  493. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.d.ts.map +1 -0
  494. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js +178 -0
  495. package/dist/esm/core/external-providers/ProviderAddressLookupCombobox.js.map +1 -0
  496. package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts +52 -0
  497. package/dist/esm/core/external-providers/ProviderAddressLookupHost.d.ts.map +1 -0
  498. package/dist/esm/core/external-providers/ProviderAddressLookupHost.js +144 -0
  499. package/dist/esm/core/external-providers/ProviderAddressLookupHost.js.map +1 -0
  500. package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts +22 -1
  501. package/dist/esm/core/external-providers/ProviderFilePickerHost.d.ts.map +1 -1
  502. package/dist/esm/core/external-providers/ProviderFilePickerHost.js +23 -3
  503. package/dist/esm/core/external-providers/ProviderFilePickerHost.js.map +1 -1
  504. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts +55 -0
  505. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.d.ts.map +1 -0
  506. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js +65 -0
  507. package/dist/esm/core/external-providers/provider-address-lookup-selection.frontend.utils.js.map +1 -0
  508. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +63 -0
  509. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -0
  510. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +100 -0
  511. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -0
  512. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +45 -7
  513. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
  514. package/dist/esm/core/flows-actors/FlowsActorsContext.js +112 -28
  515. package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
  516. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +32 -0
  517. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -0
  518. package/dist/esm/core/flows-actors/usePendingDecisions.js +91 -0
  519. package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -0
  520. package/dist/esm/core/guidance/GuidanceRenderer.d.ts.map +1 -1
  521. package/dist/esm/core/guidance/GuidanceRenderer.js +3 -2
  522. package/dist/esm/core/guidance/GuidanceRenderer.js.map +1 -1
  523. package/dist/esm/core/i18n/I18nContext.d.ts +22 -8
  524. package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
  525. package/dist/esm/core/i18n/I18nContext.js +21 -9
  526. package/dist/esm/core/i18n/I18nContext.js.map +1 -1
  527. package/dist/esm/core/i18n/component-label-resolution.utils.d.ts +5 -3
  528. package/dist/esm/core/i18n/component-label-resolution.utils.d.ts.map +1 -1
  529. package/dist/esm/core/i18n/component-label-resolution.utils.js +5 -3
  530. package/dist/esm/core/i18n/component-label-resolution.utils.js.map +1 -1
  531. package/dist/esm/core/i18n/useI18n.d.ts +2 -1
  532. package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
  533. package/dist/esm/core/i18n/useI18n.js +2 -1
  534. package/dist/esm/core/i18n/useI18n.js.map +1 -1
  535. package/dist/esm/core/loading/LoadingContext.d.ts.map +1 -1
  536. package/dist/esm/core/loading/LoadingContext.js +7 -1
  537. package/dist/esm/core/loading/LoadingContext.js.map +1 -1
  538. package/dist/esm/core/loading/LoadingGate.d.ts.map +1 -1
  539. package/dist/esm/core/loading/LoadingGate.js +19 -1
  540. package/dist/esm/core/loading/LoadingGate.js.map +1 -1
  541. package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts +15 -2
  542. package/dist/esm/core/monitoring/analytics/AnalyticsContext.d.ts.map +1 -1
  543. package/dist/esm/core/monitoring/analytics/AnalyticsContext.js +183 -20
  544. package/dist/esm/core/monitoring/analytics/AnalyticsContext.js.map +1 -1
  545. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js +2 -2
  546. package/dist/esm/core/monitoring/analytics/AnalyticsEventBridge.js.map +1 -1
  547. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts +7 -15
  548. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.d.ts.map +1 -1
  549. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js +8 -26
  550. package/dist/esm/core/monitoring/analytics/analytics-provider-registry.frontend.service.js.map +1 -1
  551. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts +12 -3
  552. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.d.ts.map +1 -1
  553. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js +3 -2
  554. package/dist/esm/core/monitoring/analytics/analytics-provider.frontend.interface.js.map +1 -1
  555. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts +42 -0
  556. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.d.ts.map +1 -1
  557. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +89 -5
  558. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
  559. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts +2 -0
  560. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.d.ts.map +1 -1
  561. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js +2 -0
  562. package/dist/esm/core/monitoring/analytics/providers/console-analytics.provider.js.map +1 -1
  563. package/dist/esm/core/navigation/NavigationContentAreas.d.ts +78 -0
  564. package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
  565. package/dist/esm/core/navigation/NavigationContentAreas.js +264 -16
  566. package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
  567. package/dist/esm/core/navigation/NavigationContext.d.ts +8 -0
  568. package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
  569. package/dist/esm/core/navigation/NavigationContext.js +137 -30
  570. package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
  571. package/dist/esm/core/navigation/launcher-resolution.d.ts +2 -0
  572. package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
  573. package/dist/esm/core/navigation/launcher-resolution.js +1 -0
  574. package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
  575. package/dist/esm/core/navigation/navigation-cascade.d.ts +46 -0
  576. package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -0
  577. package/dist/esm/core/navigation/navigation-cascade.js +222 -0
  578. package/dist/esm/core/navigation/navigation-cascade.js.map +1 -0
  579. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.d.ts.map +1 -1
  580. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js +21 -2
  581. package/dist/esm/core/navigation/navigation-clean-break.frontend.utils.js.map +1 -1
  582. package/dist/esm/core/navigation/navigation-controller-internals.d.ts +71 -0
  583. package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -0
  584. package/dist/esm/core/navigation/navigation-controller-internals.js +84 -0
  585. package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -0
  586. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +86 -2
  587. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts.map +1 -1
  588. package/dist/esm/core/navigation/navigation-policy-resolver.service.js +242 -124
  589. package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
  590. package/dist/esm/core/navigation/navigation.schemas.d.ts +170 -8
  591. package/dist/esm/core/navigation/navigation.schemas.d.ts.map +1 -1
  592. package/dist/esm/core/navigation/navigation.schemas.js +121 -2
  593. package/dist/esm/core/navigation/navigation.schemas.js.map +1 -1
  594. package/dist/esm/core/navigation/navigation.utils.d.ts +102 -6
  595. package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
  596. package/dist/esm/core/navigation/navigation.utils.js +283 -34
  597. package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
  598. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts +0 -10
  599. package/dist/esm/core/navigation/useIsStackEntryActive.d.ts.map +0 -1
  600. package/dist/esm/core/navigation/useIsStackEntryActive.js.map +0 -1
  601. package/dist/esm/core/navigation/useNavigationController.d.ts +28 -157
  602. package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
  603. package/dist/esm/core/navigation/useNavigationController.js +211 -1189
  604. package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
  605. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts +174 -0
  606. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -0
  607. package/dist/esm/core/navigation/useNavigationRouterSync.js +977 -0
  608. package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -0
  609. package/dist/esm/core/navigation/useOverlayTitle.d.ts +13 -1
  610. package/dist/esm/core/navigation/useOverlayTitle.d.ts.map +1 -1
  611. package/dist/esm/core/navigation/useOverlayTitle.js +15 -10
  612. package/dist/esm/core/navigation/useOverlayTitle.js.map +1 -1
  613. package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts +43 -0
  614. package/dist/esm/core/navigation/useResponsiveZoneMigration.d.ts.map +1 -0
  615. package/dist/esm/core/navigation/useResponsiveZoneMigration.js +44 -0
  616. package/dist/esm/core/navigation/useResponsiveZoneMigration.js.map +1 -0
  617. package/dist/esm/core/navigation/zone-collapse-migration.d.ts +83 -0
  618. package/dist/esm/core/navigation/zone-collapse-migration.d.ts.map +1 -0
  619. package/dist/esm/core/navigation/zone-collapse-migration.js +116 -0
  620. package/dist/esm/core/navigation/zone-collapse-migration.js.map +1 -0
  621. package/dist/esm/core/navigation/zone-collapse.d.ts +51 -0
  622. package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -0
  623. package/dist/esm/core/navigation/zone-collapse.js +59 -0
  624. package/dist/esm/core/navigation/zone-collapse.js.map +1 -0
  625. package/dist/esm/core/navigation/zone-emphasis.d.ts +3 -0
  626. package/dist/esm/core/navigation/zone-emphasis.d.ts.map +1 -1
  627. package/dist/esm/core/navigation/zone-emphasis.js +26 -4
  628. package/dist/esm/core/navigation/zone-emphasis.js.map +1 -1
  629. package/dist/esm/core/navigation/zone-visible-entry.d.ts +22 -0
  630. package/dist/esm/core/navigation/zone-visible-entry.d.ts.map +1 -1
  631. package/dist/esm/core/navigation/zone-visible-entry.js +25 -0
  632. package/dist/esm/core/navigation/zone-visible-entry.js.map +1 -1
  633. package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
  634. package/dist/esm/core/requests/websockets/WebSocketContext.js +53 -18
  635. package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
  636. package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
  637. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +3 -1
  638. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
  639. package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts +22 -0
  640. package/dist/esm/core/requests/websockets/useNotificationBadges.d.ts.map +1 -1
  641. package/dist/esm/core/requests/websockets/useNotificationBadges.js +72 -3
  642. package/dist/esm/core/requests/websockets/useNotificationBadges.js.map +1 -1
  643. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts +28 -0
  644. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.d.ts.map +1 -0
  645. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js +86 -0
  646. package/dist/esm/core/requests/websockets/usePublishNotificationBadgeCount.js.map +1 -0
  647. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +38 -3
  648. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
  649. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +57 -2
  650. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
  651. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
  652. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +4 -2
  653. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
  654. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +30 -1
  655. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
  656. package/dist/esm/core/requests/wildo-http-client.frontend.service.js +47 -4
  657. package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
  658. package/dist/esm/core/resources/ResourceRegistryContext.d.ts.map +1 -1
  659. package/dist/esm/core/resources/ResourceRegistryContext.js +22 -1
  660. package/dist/esm/core/resources/ResourceRegistryContext.js.map +1 -1
  661. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js +1 -1
  662. package/dist/esm/core/resources/context-resource-identifiers.frontend.utils.js.map +1 -1
  663. package/dist/esm/core/resources/frontend-resource.utils.d.ts +22 -1
  664. package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
  665. package/dist/esm/core/resources/frontend-resource.utils.js +25 -2
  666. package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
  667. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +113 -13
  668. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
  669. package/dist/esm/core/resources/operation-semantics.frontend.utils.js +173 -20
  670. package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
  671. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts +11 -0
  672. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.d.ts.map +1 -1
  673. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js +7 -0
  674. package/dist/esm/core/resources/relationship-surface-runtime.frontend.utils.js.map +1 -1
  675. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts +3 -2
  676. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.d.ts.map +1 -1
  677. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js +13 -5
  678. package/dist/esm/core/resources/resource-label-field-paths.frontend.utils.js.map +1 -1
  679. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +6 -0
  680. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
  681. package/dist/esm/core/resources/resources-repository.frontend.service.js +90 -1
  682. package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
  683. package/dist/esm/core/resources/resources.frontend.schemas.d.ts +139 -16
  684. package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
  685. package/dist/esm/core/resources/resources.frontend.schemas.js +110 -11
  686. package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
  687. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
  688. package/dist/esm/core/resources/rmm/ResourceMutationManager.js +3 -1
  689. package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
  690. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +10 -0
  691. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
  692. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +8 -0
  693. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
  694. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +7 -0
  695. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
  696. package/dist/esm/core/resources/rmm/useResourceRMM.js +9 -2
  697. package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
  698. package/dist/esm/core/resources/useOperationDirectExecution.d.ts +59 -0
  699. package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -0
  700. package/dist/esm/core/resources/useOperationDirectExecution.js +278 -0
  701. package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -0
  702. package/dist/esm/core/resources/useResourceOperationActions.d.ts +1 -1
  703. package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
  704. package/dist/esm/core/resources/useResourceOperationActions.js +69 -22
  705. package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
  706. package/dist/esm/core/resources/useResourceOperationSurface.d.ts +8 -6
  707. package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
  708. package/dist/esm/core/resources/useResourceOperationSurface.js +3 -2
  709. package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
  710. package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
  711. package/dist/esm/core/runtime/AppRouter.js +23 -2
  712. package/dist/esm/core/runtime/AppRouter.js.map +1 -1
  713. package/dist/esm/core/runtime/ApplicationContext.shared.d.ts +4 -2
  714. package/dist/esm/core/runtime/ApplicationContext.shared.d.ts.map +1 -1
  715. package/dist/esm/core/runtime/ApplicationContext.shared.js.map +1 -1
  716. package/dist/esm/core/runtime/ApplicationMainContext.d.ts +12 -2
  717. package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
  718. package/dist/esm/core/runtime/ApplicationMainContext.js +5 -2
  719. package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
  720. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +25 -1
  721. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
  722. package/dist/esm/core/runtime/domain-module.frontend.definitions.js +37 -1
  723. package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
  724. package/dist/esm/core/runtime/start-application.frontend.service.d.ts +21 -2
  725. package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
  726. package/dist/esm/core/runtime/start-application.frontend.service.js +51 -4
  727. package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
  728. package/dist/esm/core/security/AuthSessionContext.d.ts +11 -0
  729. package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
  730. package/dist/esm/core/security/AuthSessionContext.js +70 -22
  731. package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
  732. package/dist/esm/core/security/StepUpAuthContext.d.ts.map +1 -1
  733. package/dist/esm/core/security/StepUpAuthContext.js +10 -2
  734. package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
  735. package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
  736. package/dist/esm/core/security/UserOrgsContext.js +72 -8
  737. package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
  738. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +7 -0
  739. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
  740. package/dist/esm/core/security/route-organization-access.frontend.utils.js +8 -2
  741. package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
  742. package/dist/esm/core/security/useGrantedConsentPurposes.d.ts +30 -0
  743. package/dist/esm/core/security/useGrantedConsentPurposes.d.ts.map +1 -0
  744. package/dist/esm/core/security/useGrantedConsentPurposes.js +38 -0
  745. package/dist/esm/core/security/useGrantedConsentPurposes.js.map +1 -0
  746. package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
  747. package/dist/esm/core/ui/UIContext.js +10 -6
  748. package/dist/esm/core/ui/UIContext.js.map +1 -1
  749. package/dist/esm/core/ui/color-conversion.utils.d.ts +20 -0
  750. package/dist/esm/core/ui/color-conversion.utils.d.ts.map +1 -1
  751. package/dist/esm/core/ui/color-conversion.utils.js +39 -5
  752. package/dist/esm/core/ui/color-conversion.utils.js.map +1 -1
  753. package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
  754. package/dist/esm/core/ui/themes/default.theme.js +22 -2
  755. package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
  756. package/dist/esm/core/ui/ui.frontend.schemas.d.ts +6 -6
  757. package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
  758. package/dist/esm/core/ui/ui.frontend.schemas.js +3 -3
  759. package/dist/esm/core/ui/ui.frontend.schemas.js.map +1 -1
  760. package/dist/esm/index.d.ts +10 -1
  761. package/dist/esm/index.d.ts.map +1 -1
  762. package/dist/esm/index.js +19 -1
  763. package/dist/esm/index.js.map +1 -1
  764. package/dist/esm/testing/app-shell-placement-coverage.d.ts +43 -0
  765. package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -0
  766. package/dist/esm/testing/app-shell-placement-coverage.js +114 -0
  767. package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -0
  768. package/dist/esm/testing/mock-builders.d.ts.map +1 -1
  769. package/dist/esm/testing/mock-builders.js +5 -0
  770. package/dist/esm/testing/mock-builders.js.map +1 -1
  771. package/dist/esm/testing.d.ts +1 -0
  772. package/dist/esm/testing.d.ts.map +1 -1
  773. package/dist/esm/testing.js +1 -0
  774. package/dist/esm/testing.js.map +1 -1
  775. package/package.json +9 -7
  776. package/dist/esm/core/navigation/useIsStackEntryActive.js +0 -15
  777. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-shell/app-shell.schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-shell.schemas.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-shell/app-shell.schemas.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { HorizontalPlacement } from '@wildo-ai/presets-components-models';
2
2
  export function isSidebarConfigObject(config) {
3
3
  return typeof config === 'object' && config !== null && 'placement' in config && 'collapsible' in config;
4
4
  }
5
+ /** Narrowing guard for the object form, distinguishing it from the boolean and string-shorthand forms. */
5
6
  export function isStatusBarConfigObject(config) {
6
7
  return typeof config === 'object' && config !== null && !Array.isArray(config);
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app-shell.schemas.js","sourceRoot":"","sources":["../../../../../src/core/app-shell/app-shell.schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAmM1E,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,WAAW,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,CAAC;AAC3G,CAAC;AAsBD,MAAM,UAAU,uBAAuB,CAAC,MAAe;IACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjF,CAAC;AAWD,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,MAAiC,CAAC;IACpD,MAAM,eAAe,GACnB,SAAS,CAAC,QAAQ,KAAK,SAAS;QAChC,SAAS,CAAC,QAAQ,KAAK,mBAAmB,CAAC,KAAK;QAChD,SAAS,CAAC,QAAQ,KAAK,mBAAmB,CAAC,GAAG,CAAC;IACjD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAErF,OAAO,eAAe,IAAI,YAAY,CAAC;AACzC,CAAC;AAkLD,MAAM,CAAN,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,8CAAa,CAAA;IACb,0EAAyC,CAAA;IACzC,4CAAW,CAAA;AACb,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,QAIxC;AAkHD,MAAM,CAAN,IAAY,+BAIX;AAJD,WAAY,+BAA+B;IACzC,oDAAiB,CAAA;IACjB,gDAAa,CAAA;IACb,oDAAiB,CAAA;AACnB,CAAC,EAJW,+BAA+B,KAA/B,+BAA+B,QAI1C;AA8CD,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;AACnB,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAmOD;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,oDAAqB,CAAA;IACrB,kDAAmB,CAAA;AACrB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC","sourcesContent":["import type React from 'react';\nimport type { UseFormReturn } from 'react-hook-form';\nimport type { z } from 'zod';\n\nimport { HorizontalPlacement } from '@wildo-ai/presets-components-models';\nimport type { ForeignKeyDisplayMode, ViewportBreakpoint } from '@wildo-ai/zod-decorators';\nimport type { AppScopeFieldDefinition } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport type { ApplicationLevelComponentType, StatusBarItemType } from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport type { VerticalPlacement } from '@wildo-ai/presets-components-models';\nimport type {\n QuickSwitcherFieldPresentation,\n UserDropdownAvatarDisplay,\n UserDropdownSection,\n} from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport type { FrontendComponentType, PlacementSide } from '@wildo-ai/presets-components-models';\nimport type { ComponentRegistryRef } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.schemas';\nimport type { StandardIconReference } from '~wildo-frontend-lib/core/icons/icon-registry.frontend.schemas';\nimport type { LauncherItemTargetKind } from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport type { HorizontalAlign, LayoutDirection } from '@wildo-ai/zod-decorators';\nimport type { Notification } from '~wildo-frontend-lib/core/events/NotificationContext';\nimport type { AnyNavigationItem } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\nimport type { ResolvedControlPanelItem, ResolvedNavigationTarget } from '~wildo-frontend-lib/core/navigation/launcher-resolution';\nimport type { WebSocketStatus } from '~wildo-frontend-lib/core/requests/websockets/WebSocketContext';\nimport type {\n ActivityBarRendering,\n AppModeDefinition,\n ResourceBrowserClickContext,\n SidebarHomeDisplayMode,\n SidebarSection,\n SidebarSectionBehavior,\n SidebarSectionContentKind,\n SidebarSectionInlineCreate,\n SidebarHostedComponent,\n UtilityPanelItem,\n} from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport type { BrandAssetTheme } from '@wildo-ai/saas-models';\nimport type { BrandIdentity } from '~wildo-frontend-lib/core/branding/useBrandIdentity';\nimport { SidebarResponsivePolicy } from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport type { HostedTriggerAppearance } from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\n\n\n/** Navigation item with optional children for hierarchical rendering */\nexport type HierarchicalNavigationItem = AnyNavigationItem & {\n children?: AnyNavigationItem[];\n /**\n * Canonical favorite identity for FAVORITES-section copies. A favorited item\n * renders twice (its origin section AND the favorites section); the favorites\n * copy carries a DISTINCT `id` (so the exactly-one-active invariant keeps a\n * single highlighted row) and `favoriteId` = the origin item's id — the key\n * the favorites store persists and the star toggle operates on. Absent on\n * origin items (their own `id` IS the favorite key).\n */\n favoriteId?: string;\n};\n\n/**\n * A hosted component resolved from a surface's `hostedComponents` config entry,\n * ready for the preset to mount. Shared by BOTH the menubar and the sidebar —\n * they run one hosting pipeline (`resolveHostedComponents`) so the container\n * inversion model, interaction ownership, and per-placement width thread through\n * a single implementation rather than being duplicated per surface.\n *\n * `instanceId` is SURFACE-QUALIFIED (e.g. `menubar:command_menu-0`) so the\n * shell-level interaction owner can disambiguate the same component hosted in\n * two surfaces at once (a command-menu trigger in the menubar AND the sidebar).\n */\nexport interface ResolvedHostedComponent {\n instanceId: string;\n component: ApplicationLevelComponentType;\n frontendComponentType: FrontendComponentType;\n /**\n * Horizontal zone (menubar) or vertical end (sidebar). Always concrete:\n * `resolveHostedComponents` normalizes an omitted config `placement` to the\n * surface's default zone (menubar START / sidebar TOP), so preset-side\n * per-zone equality filters can never silently drop a hosted component.\n */\n placement: HorizontalPlacement | VerticalPlacement;\n presetName?: string;\n /** Per-placement trigger width override (see `MenubarHostedComponent.triggerWidth`). */\n triggerWidth?: string | number;\n /** Per-placement trigger appearance (see `HostedTriggerAppearance`). */\n triggerAppearance?: HostedTriggerAppearance;\n}\n\n/**\n * Lightweight rendering props extracted from a sidebar section definition.\n * Used by the rendering layer (sidebar preset) to render section headers,\n * collapse behavior, and inline create — without coupling to the config schema.\n */\nexport interface SectionRenderProps {\n ref: string;\n label?: string;\n icon?: string;\n /** Whether the section header (label + icon) is rendered. Defaults to `true`. */\n showLabel: boolean;\n collapsible: boolean;\n defaultCollapsed: boolean;\n /**\n * Primary navigation group — rendered at the top of the sidebar (no header,\n * not collapsible), sharing that group with the framework Home row when\n * `homeDisplayMode` is `NAVIGATION_ITEM`. See\n * `SidebarSection_NavigationList.isPrimary`.\n */\n isPrimary?: boolean;\n behavior?: SidebarSectionBehavior;\n inlineCreate?: SidebarSectionInlineCreate;\n inlineCreateResourceType?: string;\n nested?: boolean;\n maxNestingDepth?: number;\n}\n\n/**\n * A grouped sidebar section for rendering.\n *\n * When `contentKind` is undefined or `NAVIGATION_LIST`, this is a traditional\n * navigation item list. When `contentKind` is a different variant, the section\n * renders specialized content and `items` will be empty.\n */\nexport interface SectionGroup {\n section: SectionRenderProps;\n items: HierarchicalNavigationItem[];\n moreMenuItems: HierarchicalNavigationItem[];\n /**\n * Discriminant from the new per-launcher config. When undefined, this section\n * was produced by the old scan-based path (treat as NAVIGATION_LIST).\n */\n contentKind?: SidebarSectionContentKind;\n /** RESOURCE_BROWSER: resource type to browse. */\n resourceType?: string;\n /** RESOURCE_BROWSER: operation override. */\n operation?: string;\n /** RESOURCE_BROWSER: operation variant. */\n operationVariant?: string;\n /** RESOURCE_BROWSER: click/navigation operation override. */\n navigateOperation?: string;\n /** RESOURCE_BROWSER: click/navigation operation variant. */\n navigateOperationVariant?: string;\n /** RESOURCE_BROWSER: client-side instance filter. */\n instanceFilter?: (instance: Record<string, unknown>) => boolean;\n /** RESOURCE_BROWSER: custom click handler. */\n onInstanceClick?: (context: ResourceBrowserClickContext) => void;\n /** GUIDANCE_WIDGET: guidance component ref. */\n guidanceRef?: string;\n /** CUSTOM_COMPONENT: custom component ref. */\n componentRef?: string;\n}\n\n/**\n * Sidebar config object — matches the transformed shape from `UIContext`\n * (`ViewportAwareAppLevelComponentConfigurationSchema` → transformer →\n * `{ placement, collapsible, policy }`).\n *\n * The raw model uses `responsivePolicy`, but the transformer renames it\n * to `policy` in the runtime config.\n */\nexport interface SidebarConfigObject {\n placement: HorizontalPlacement.START | HorizontalPlacement.END;\n collapsible: boolean;\n /**\n * Starting rail state for a visitor with NO stored preference. Absent means\n * the framework default, expanded. A persisted\n * `LOCAL_STORAGE_KEYS.SIDEBAR_COLLAPSED` always wins over it — this is a\n * starting position, not a lock.\n */\n defaultCollapsed?: boolean;\n policy: SidebarResponsivePolicy;\n /**\n * Viewport threshold at (or below) which the responsive `policy` applies.\n * Authored as `responsiveBreakpoint` in the raw model and carried through the\n * UIContext transformer's rest-spread. Defaults to `ViewportBreakpoint.MOBILE`\n * (the Zod schema default) when absent.\n */\n responsiveBreakpoint?: ViewportBreakpoint;\n /**\n * How the sidebar surfaces HOME (hidden / pinned brand header / navigation\n * row). Absent means the framework default, `NAVIGATION_ITEM`, applied by\n * `useSidebarBehavior`.\n */\n homeDisplayMode?: SidebarHomeDisplayMode;\n /**\n * Pins which brand-mark variant the BRAND_HEADER mode renders (e.g.\n * `MONOCHROME`). Absent means adaptive light/dark.\n */\n brandMarkTheme?: BrandAssetTheme;\n /** Per-launcher content declarations — discriminated union on `contentKind`. */\n contentSections?: SidebarSection[];\n /** Components hosted inside the sidebar via container inversion (mirror of menubar `hostedComponents`). */\n hostedComponents?: SidebarHostedComponent[];\n defaultSection?: string;\n /** Desktop sidebar width in px. Defaults to 256. */\n width?: number;\n /** Mobile sidebar width in px. Defaults to 280. */\n mobileWidth?: number;\n /** Desktop collapsed width in px. Defaults to 64. */\n collapsedWidth?: number;\n /** Mobile collapsed width in px. Defaults to 56. */\n mobileCollapsedWidth?: number;\n}\n\nexport function isSidebarConfigObject(config: unknown): config is SidebarConfigObject {\n return typeof config === 'object' && config !== null && 'placement' in config && 'collapsible' in config;\n}\n\n/**\n * Narrowing guard for StatusBar object config.\n * StatusBar config can be `boolean | VerticalPlacement (string) | object`.\n * This guard identifies the object form, distinguishing it from both\n * the boolean and string-shorthand variants.\n */\nexport interface StatusBarConfigObject {\n placement?: VerticalPlacement;\n showMemoryUsage?: boolean;\n showNotificationCount?: boolean;\n showConnectionStatus?: boolean;\n showConnectionStatusOnMobile?: boolean;\n backgroundClassName?: string;\n textClassName?: string;\n showBorder?: boolean;\n height?: number;\n statusItems?: StatusBarConfigItem[];\n style?: React.CSSProperties;\n}\n\nexport function isStatusBarConfigObject(config: unknown): config is StatusBarConfigObject {\n return typeof config === 'object' && config !== null && !Array.isArray(config);\n}\n\nexport type UtilityPanelPlacement =\n | HorizontalPlacement.START\n | HorizontalPlacement.END;\n\nexport interface UtilityPanelConfigObject {\n items?: UtilityPanelItem[];\n position?: UtilityPanelPlacement;\n}\n\nexport function isUtilityPanelConfigObject(config: unknown): config is UtilityPanelConfigObject {\n if (typeof config !== 'object' || config === null || Array.isArray(config)) {\n return false;\n }\n\n const candidate = config as Record<string, unknown>;\n const isValidPosition =\n candidate.position === undefined ||\n candidate.position === HorizontalPlacement.START ||\n candidate.position === HorizontalPlacement.END;\n const isValidItems = candidate.items === undefined || Array.isArray(candidate.items);\n\n return isValidPosition && isValidItems;\n}\n\n\n// ---------------------------------------------------------------------------\n// Behavior hook return types\n// ---------------------------------------------------------------------------\n\n/**\n * Standalone navigation behavioral utilities — active-state checking,\n * display policy evaluation, click dispatch, and home navigation.\n *\n * Does NOT include items — consumers obtain items from per-launcher\n * resolution or auto-items.\n *\n * `handleNavigationClick` accepts `launcher` as a second parameter since\n * this interface is not scoped to a single launcher.\n */\nexport interface NavigationBehaviors {\n isNavigationItemActive: (urlPath: string) => boolean;\n shouldShowItem: (item: AnyNavigationItem) => 'visible' | 'more_menu' | 'hidden';\n handleNavigationClick: (item: AnyNavigationItem, launcher: ApplicationLevelComponentType) => void;\n handleHomeClick: () => void;\n isHomeActive: boolean;\n}\n\nexport interface SidebarBehavior {\n groupedSections: SectionGroup[];\n /**\n * Components hosted in the sidebar (container inversion), resolved from\n * `[SIDEBAR].hostedComponents` through the SAME pipeline the menubar uses.\n * The preset resolves each via the component registry and mounts it with the\n * shell-level interaction-owner props.\n */\n hostedComponents: ResolvedHostedComponent[];\n isCollapsed: boolean;\n isHomeActive: boolean;\n dimensions: { width: number; collapsedWidth: number };\n sidebarConfig: {\n isCollapsible: boolean;\n responsivePolicy: SidebarResponsivePolicy;\n placementClass: string;\n currentWidth: number;\n };\n isNavigationLoading: boolean;\n hasItems: boolean;\n placement: HorizontalPlacement;\n\n /**\n * How the sidebar must surface HOME — hidden, the pinned brand header, or a\n * navigation row. Resolved from config with the framework default applied, so\n * a preset never re-derives it.\n */\n homeDisplayMode: SidebarHomeDisplayMode;\n /**\n * App name + resolved brand-asset URL for the pinned header. Present ONLY in\n * `SidebarHomeDisplayMode.BRAND_HEADER`; `logoUrl` is itself optional because\n * an application may not have generated a brand yet.\n */\n brandHeader?: BrandIdentity;\n\n /**\n * `true` when the current viewport is at (or below) the sidebar's configured\n * `responsiveBreakpoint` AND the responsive policy is `BURGER`. In this mode the\n * sidebar renders NOTHING inline (width 0) and instead opens as an overlay drawer\n * (`isMobileDrawerOpen`) toggled by the menubar burger / `HOTKEY_SIDEBAR_TOGGLE`.\n */\n isMobileDrawerMode: boolean;\n /** Drawer open state — only meaningful while `isMobileDrawerMode` is true. */\n isMobileDrawerOpen: boolean;\n /** Closes the mobile drawer (backdrop click, Escape, post-navigation dismiss). */\n closeMobileDrawer: () => void;\n\n /**\n * Active-state check keyed on the ITEM's resolved `id`, not on the raw path:\n * two DISTINCT items sharing an identical `urlPath` (e.g. an item and its\n * favorites-section copy, which carries a `favorite-` prefixed id) must not\n * both highlight — one id (the first in section order carrying the winning\n * path) is elected (frontend-ux-quality-audit E2). Caveat: resolved ids are\n * deterministic per TARGET (`resolved-<type>-<op>-<variant>`), so declaring\n * the SAME launcher target in two sections yields two rows with one shared\n * id, and both still highlight — dedupe such declarations in config instead\n * (WT once declared Todos twice and hit exactly this).\n */\n isNavigationItemActive: (item: { id: string; urlPath?: string }) => boolean;\n isSectionCollapsed: (section: SectionRenderProps) => boolean;\n isItemCollapsed: (itemId: string) => boolean;\n\n handleNavigationClick: (item: AnyNavigationItem) => void;\n handleHomeClick: () => void;\n handleToggleCollapse: () => void;\n /**\n * Record a section's collapsed state. A SETTER rather than a toggle, deliberately: the\n * effective collapsed state is resolved from a stored entry, then `defaultSection`, then\n * `section.defaultCollapsed`, so a toggle that negated only the stored entry ignored the\n * first interaction on any section declaring `defaultCollapsed: true` (#631). Pass the value\n * the collapsible primitive gives you; do not re-derive it.\n */\n handleSetSectionCollapsed: (sectionRef: string, collapsed: boolean) => void;\n handleToggleItemCollapse: (itemId: string) => void;\n\n /**\n * `true` when the item is in the user's favorites. Accepts either an origin\n * item (keyed by its own `id`) or a favorites-section copy (keyed by its\n * `favoriteId`).\n */\n isItemFavorite: (item: Pick<HierarchicalNavigationItem, 'id' | 'favoriteId'>) => boolean;\n /**\n * Toggles the item in the persisted favorites set (star affordance). The\n * favorites section re-populates immediately; storage is machine-local\n * (`LOCAL_STORAGE_KEYS.SIDEBAR_FAVORITES`).\n */\n handleToggleItemFavorite: (item: Pick<HierarchicalNavigationItem, 'id' | 'favoriteId'>) => void;\n /**\n * Whether any `SidebarSectionBehavior.FAVORITES` section is configured — the\n * preset only offers the star affordance when favoriting has a destination.\n */\n hasFavoritesSection: boolean;\n\n inlineCreate: {\n activeSection: string | null;\n value: string;\n start: (sectionRef: string) => void;\n cancel: () => void;\n submit: (sectionRef: string, resourceType?: string) => void;\n setValue: (value: string) => void;\n };\n}\n\nexport interface AppShellLayoutInfo {\n hasMenubar: boolean;\n hasSidebar: boolean;\n hasStatusBar: boolean;\n hasToolbar: boolean;\n hasActivityBar: boolean;\n hasQuickActionButton: boolean;\n hasUtilityPanel: boolean;\n sidebarPlacement: HorizontalPlacement;\n statusBarPlacement: VerticalPlacement;\n utilityPanelPlacement: UtilityPanelPlacement;\n isLayoutReady: boolean;\n}\n\nexport interface PublicShellLayoutInfo {\n useCardLayout: boolean;\n isReady: boolean;\n /**\n * The identity to present above the public card, or `undefined` when the application has not\n * opted in via `publicShellIdentityMode`.\n *\n * EXPOSED only in the opted-in mode rather than always, mirroring `useSidebarBehavior`'s\n * `brandHeader`: a preset that receives an identity unconditionally can render a mark on a\n * surface the application never asked to brand, and no type would catch it.\n */\n brandHeader?: BrandIdentity;\n /** Tenant accent for the identity ornament only; never replaces accessible application theme tokens. */\n brandAccentColor?: string;\n}\n\nexport interface ToolbarDisplayItem {\n id: string;\n label: string;\n icon?: React.ReactNode;\n iconOnly?: boolean;\n onClick: () => void;\n}\n\nexport interface ToolbarBehavior {\n tools: ToolbarDisplayItem[];\n toolbarConfig: {\n placement: 'top' | 'bottom';\n compact: boolean;\n showSeparator: boolean;\n hideOnMobile: boolean;\n };\n shouldRender: boolean;\n currentBreakpoint: string | undefined;\n}\n\nexport enum QuickSwitcherFieldControlKind {\n ENUM = 'enum',\n RESOURCE_REFERENCE = 'resource_reference',\n RAW = 'raw',\n}\n\nexport interface QuickSwitcherResolvedField {\n fieldId: string;\n /** Guaranteed non-empty (config label → resource title → humanized field id → field id). */\n label: string;\n schema: z.ZodTypeAny;\n valueSchema: z.ZodTypeAny;\n disabled: boolean;\n isMultiple: boolean;\n controlKind: QuickSwitcherFieldControlKind;\n /**\n * Explicit target for `RESOURCE_REFERENCE` controls whose schema carries no\n * `isForeignKey` metadata — i.e. the primary-key fallback, where the switcher\n * is by definition selecting an instance of the scope field's `resourceType`.\n * `undefined` for FK-decorated schemas (the FK metadata names the target).\n */\n targetResourceType?: string;\n /** Input placeholder — localized resource title, falling back to `label`. Non-empty. */\n placeholder: string;\n /**\n * How each dropdown option renders — the declared\n * `appScope.fields[].optionDisplayMode`, defaulted to `LABEL`. Reuses the\n * framework's FK-rendering vocabulary: `LABEL` is the resource's own display\n * label, `SUMMARY` is its summary card.\n */\n optionDisplayMode: ForeignKeyDisplayMode;\n /**\n * Clear this field's ambient scope. A scope is inherently OPTIONAL — \"no list\n * selected\" is a first-class state the collection surfaces already produce —\n * so the control always offers an explicit way back to it rather than relying\n * on the combobox's undiscoverable re-click-to-toggle.\n */\n onClear: () => void;\n /** Whether anything is currently selected (drives the clear affordance). */\n hasValue: boolean;\n /**\n * How the closed control presents — the declared\n * `appScope.fields[].presentation`, defaulted to `CONTROL_ONLY`.\n *\n * Carried as DATA, never as a rendered node: resolving the resource's icon is\n * component-registry work, so the preset does it. Behavior hooks in this\n * framework never return `ReactNode` nor perform registry resolution.\n */\n presentation: QuickSwitcherFieldPresentation;\n definition: AppScopeFieldDefinition;\n}\n\nexport interface QuickSwitcherBehavior {\n fields: QuickSwitcherResolvedField[];\n formMethods: UseFormReturn;\n layoutDirection: 'horizontal' | 'vertical';\n /**\n * Monotonically increasing counter — incremented when the\n * `HOTKEY_QUICK_SWITCHER_OPEN` event fires. Presets should watch\n * this value and focus the first enabled field when it changes.\n */\n focusTrigger: number;\n}\n\nexport interface StatusBarBehavior {\n totalBadgeCount: number;\n connectionStatus: WebSocketStatus;\n showConnectionStatus: boolean;\n showConnectionStatusOnMobile: boolean;\n shouldShowConnectionStatus: boolean;\n showNotificationCount: boolean;\n shouldShowNotificationCount: boolean;\n showMemoryUsage: boolean;\n memoryUsageLabel: string | null;\n notificationCountLabel: string;\n notificationCountAriaLabel: string;\n connectionStatusLabel: string;\n statusItems: StatusBarDisplayItem[];\n dimensions: { height: number };\n statusBarConfig: {\n isTop: boolean;\n isBottom: boolean;\n isMobile: boolean;\n backgroundClassName: string;\n textClassName: string;\n showBorder: boolean;\n };\n customStyle?: React.CSSProperties;\n currentBreakpoint: string | undefined;\n}\n\nexport interface StatusBarConfigItemBase {\n id: string;\n label: string;\n type: StatusBarItemType;\n icon?: string;\n value?: string | number;\n}\n\nexport interface StatusBarConfigItem_Link extends StatusBarConfigItemBase {\n type: StatusBarItemType.LINK;\n href: string;\n}\n\nexport interface StatusBarConfigItem_Button extends StatusBarConfigItemBase {\n type: StatusBarItemType.BUTTON;\n onClick: () => void;\n}\n\nexport interface StatusBarConfigItem_Text extends StatusBarConfigItemBase {\n type: StatusBarItemType.TEXT;\n}\n\nexport type StatusBarConfigItem =\n | StatusBarConfigItem_Link\n | StatusBarConfigItem_Button\n | StatusBarConfigItem_Text;\n\nexport enum StatusBarDisplayInteractionType {\n STATIC = 'static',\n LINK = 'link',\n BUTTON = 'button',\n}\n\nexport interface StatusBarDisplayInteraction_Static {\n type: StatusBarDisplayInteractionType.STATIC;\n}\n\nexport interface StatusBarDisplayInteraction_Link {\n type: StatusBarDisplayInteractionType.LINK;\n href: string;\n}\n\nexport interface StatusBarDisplayInteraction_Button {\n type: StatusBarDisplayInteractionType.BUTTON;\n onClick: () => void;\n}\n\nexport type StatusBarDisplayInteraction =\n | StatusBarDisplayInteraction_Static\n | StatusBarDisplayInteraction_Link\n | StatusBarDisplayInteraction_Button;\n\nexport interface StatusBarDisplayItem {\n id: string;\n label: string;\n iconReference?: string;\n valueText?: string;\n interaction: StatusBarDisplayInteraction;\n}\n\nexport interface ActivityBarLayout {\n direction: LayoutDirection;\n borderSide: PlacementSide;\n tooltipSide: PlacementSide;\n orientation: LayoutDirection;\n}\n\nexport interface ActivityBarBehavior {\n availableModes: AppModeDefinition[];\n activeMode: string | null;\n setActiveMode: (mode: string) => void;\n hasModes: boolean;\n activeRenderingMode: ActivityBarRendering;\n layout: ActivityBarLayout;\n isNavigationLoading: boolean;\n}\n\nexport enum ControlPanelControlType {\n BUTTON = 'button',\n TOGGLE = 'toggle',\n SLIDER = 'slider',\n SELECT = 'select',\n}\n\nexport interface ControlPanelBehavior {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n groupedItems: Record<string, ControlPanelNavigationItem[]>;\n sections: ControlPanelSection[];\n controls: ControlPanelDisplayControl[];\n handleItemClick: (item: ControlPanelNavigationItem) => void;\n sheetSide: PlacementSide;\n isNavigationLoading: boolean;\n navigationItemCount: number;\n currentBreakpoint: string | undefined;\n}\n\nexport type ControlPanelNavigationItem = ResolvedControlPanelItem;\n\nexport interface ControlPanelSection {\n id: string;\n label: string;\n items: ControlPanelNavigationItem[];\n}\n\nexport interface ControlPanelDisplayControlBase {\n id: string;\n label: string;\n type: ControlPanelControlType;\n disabled: boolean;\n}\n\nexport interface ControlPanelDisplayControl_Button extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.BUTTON;\n onTrigger: () => void;\n}\n\nexport interface ControlPanelDisplayControl_Toggle extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.TOGGLE;\n value: boolean;\n onToggle: () => void;\n}\n\nexport interface ControlPanelDisplayControl_SelectOption {\n label: string;\n value: unknown;\n isSelected: boolean;\n onSelect: () => void;\n}\n\nexport interface ControlPanelDisplayControl_Select extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.SELECT;\n value?: unknown;\n options: ControlPanelDisplayControl_SelectOption[];\n}\n\nexport interface ControlPanelDisplayControl_Slider extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.SLIDER;\n value: number;\n min: number;\n max: number;\n step: number;\n onValueChange: (value: number) => void;\n}\n\nexport type ControlPanelDisplayControl =\n | ControlPanelDisplayControl_Button\n | ControlPanelDisplayControl_Toggle\n | ControlPanelDisplayControl_Select\n | ControlPanelDisplayControl_Slider;\n\n/**\n * One panel item, normalized for display, discriminated the same way its config is (#504).\n *\n * `resolvedComponentRef` and `resolvedViewRef` are both nullable and both mean the SAME thing: the item\n * names something this panel cannot host, and the preset must show that rather than render chrome\n * that looks like a component with nothing to say. Keeping the two kinds apart here is what stops\n * the preset guessing which ref an item meant.\n */\nexport type UtilityPanelDisplayItem =\n | {\n kind: LauncherItemTargetKind.CUSTOM_COMPONENT;\n componentRef: string;\n /**\n * The registry key the preset renders, or `null` when nothing is registered under that ref in\n * the default preset. Engine AND application components resolve here (#549); it used to be\n * `componentType: FrontendComponentType | null`, which made every application component `null`.\n */\n resolvedComponentRef: ComponentRegistryRef | null;\n icon: string;\n label: string;\n }\n | {\n kind: LauncherItemTargetKind.VIEW;\n viewRef: string;\n /** `null` when no declared view carries that ref, so an unknown ref is reported and not rendered blank. */\n resolvedViewRef: string | null;\n icon: string;\n label: string;\n };\n\nexport interface UtilityPanelBehavior {\n /** Whether the panel is expanded/open. */\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n /** Panel items normalized for display without moving registry resolution into the hook. */\n items: UtilityPanelDisplayItem[];\n /** Number of items. */\n itemCount: number;\n /** Horizontal position (START or END only). */\n position: UtilityPanelPlacement;\n /** Current breakpoint for responsive adjustments. */\n currentBreakpoint: string | undefined;\n}\n\n/**\n * The notification centre's contract — a SESSION FEED, not a message history (#412).\n *\n * Four members were removed on 2026-09-08 and each was asserting something the store cannot hold.\n * The store behind this is a `useReducer` with no hydration: it starts empty on every page load, and\n * nothing that arrived while the tab was closed is recoverable.\n *\n * | removed | why it could not be true |\n * |---|---|\n * | `unreadCount` / `handleMarkAllAsRead` | \"unread\" was a function of when the tab OPENED, and marking something read meant nothing — the state died with the page. A badge counting it was counting the current session's arrivals and calling them unread. |\n * | `filter` / `setFilter` | the only filter was ALL vs UNREAD, so it filtered on the read state above. Filtering \"what arrived since this page loaded\" by whether you had glanced at it is not a question anyone has. |\n * | `groupedNotifications` | today / yesterday / older, over a buffer that cannot contain a yesterday. The `older` bucket was unreachable and `yesterday` only fillable by leaving a tab open overnight. |\n *\n * What is left says what it is: the arrivals, newest first, each dismissable, and a way to clear\n * them. Persisting instead was weighed and declined — it creates a per-user personal-data store\n * carrying retention, privacy-classification, subject-export and erasure obligations for message\n * content, which is the real cost, not the table.\n */\nexport interface NotificationCenterBehavior {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n /** Everything that has arrived since this page loaded, newest first. */\n sessionNotifications: NotificationCenterDisplayNotification[];\n notificationCount: number;\n handleClearAll: () => void;\n dismissNotification: (notificationId: string) => void;\n}\n\nexport interface NotificationCenterDisplayNotification {\n id: string;\n type: Notification['type'];\n source: Notification['source'];\n timestamp: number;\n displayTitle: string;\n displayMessage: string;\n relativeTimeLabel: string;\n iconReference: StandardIconReference;\n nextStep?: Notification['nextStep'];\n}\n\nexport interface QuickActionButtonDisplayItem {\n id: string;\n label: string;\n icon?: React.ReactNode;\n displayPolicy?: string;\n onClick: () => void;\n}\n\nexport interface QuickActionButtonBehavior {\n allItems: QuickActionButtonDisplayItem[];\n primaryAction: QuickActionButtonDisplayItem | null;\n menuActions: QuickActionButtonDisplayItem[];\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n handleActionClick: (item: QuickActionButtonDisplayItem) => void;\n hasActions: boolean;\n isNavigationLoading: boolean;\n currentBreakpoint: string | undefined;\n}\n\nexport interface CommandMenuItem {\n id: string;\n label: string;\n shortcut: string;\n icon?: React.ReactNode;\n category: string;\n keywords: string[];\n /** Internal policy from config — used by the hook to control grouping/visibility. */\n displayPolicy?: string;\n onExecute: () => void;\n}\n\nexport interface CommandMenuGroup {\n category: string;\n label: string;\n items: CommandMenuItem[];\n}\n\n/**\n * One live omnibox record-search result. Intentionally DISTINCT from\n * {@link CommandMenuItem}: a search result is a resource RECORD (it carries the\n * full summary-mode DTO in `record` + its `resourceType`) so the palette can\n * render it as the resource's summary VIEW (summary card), whereas a\n * `CommandMenuItem` is a static navigation command that only ever renders a\n * label + icon. Merging the two would collapse that semantic distinction and\n * force every static command to carry a nullable record.\n */\nexport interface CommandMenuSearchResultItem {\n id: string;\n /** Resource type of the matched record — drives summary-view + navigation. */\n resourceType: string;\n /** Full summary-mode DTO returned by SEARCH — fed to the summary renderer. */\n record: Record<string, unknown>;\n /** Resolved one-line label (LABEL display mode + summary-card fallback). */\n label: string;\n /**\n * Client-side match terms carried so cmdk's filter never drops a legitimate\n * server hit (always includes the raw query; matches may be on a field absent\n * from the label, e.g. `description`).\n */\n keywords: string[];\n /** Navigate to the matched record's addressable READ view, then close. */\n onExecute: () => void;\n}\n\n/** A group of omnibox search results for one searched resource. */\nexport interface CommandMenuSearchResultGroup {\n category: string;\n label: string;\n /** How each item in this group renders (summary card vs. one-line label). */\n displayMode: ForeignKeyDisplayMode;\n items: CommandMenuSearchResultItem[];\n}\n\n/**\n * Discriminant for {@link CommandMenuPaletteGroup} — whether an entry in the\n * unified, ordered palette list is a static command-category group or a live\n * record-search result group. The two stay DISTINCT types (a command is a\n * navigation target rendering a label; a record carries a full DTO rendering a\n * summary card) — this union only sequences them in one render order, it does\n * not merge their semantics.\n */\nexport enum CommandMenuPaletteGroupKind {\n COMMANDS = 'commands',\n RECORDS = 'records',\n}\n\n/**\n * One entry in the palette's SINGLE ordered group list — either a static\n * command-category group or a live record-search group, tagged with the numeric\n * `order` weight the palette sorted by (lower = higher). Produced by\n * `useCommandMenuBehavior` so the preset renders one uniform, ordered sequence\n * (record groups default above command groups while searching) instead of two\n * hard-coded blocks. The recent-commands group is rendered separately (always\n * pinned to the top) and is not part of this list.\n */\nexport type CommandMenuPaletteGroup =\n | { kind: CommandMenuPaletteGroupKind.COMMANDS; order: number; group: CommandMenuGroup }\n | { kind: CommandMenuPaletteGroupKind.RECORDS; order: number; group: CommandMenuSearchResultGroup };\n\nexport interface CommandMenuBehavior {\n isOpen: boolean;\n handleOpenChange: (open: boolean) => void;\n searchQuery: string;\n setSearchQuery: (query: string) => void;\n commandItems: CommandMenuItem[];\n groupedItems: CommandMenuGroup[];\n recentItems: CommandMenuItem[];\n /**\n * Live record-search result groups (omnibox layer). Empty unless the\n * `COMMAND_MENU` config sets `policy: OMNIBOX` with `searchResources` and the\n * current query meets the minimum length. Each item's `onExecute` navigates\n * to the matched record's READ view. Items render as the resource's summary\n * view (or a one-line label per the resource's `resultDisplay` config).\n */\n searchResultGroups: CommandMenuSearchResultGroup[];\n /**\n * The unified, ORDERED render list the preset iterates: record groups and\n * static command-category groups merged and sorted by a single numeric `order`\n * weight (record groups default above command groups while searching; apps\n * override per record group via `CommandMenuSearchResource.order`, and command\n * categories sequence among themselves via `[COMMAND_MENU].categoryOrder`).\n * The recent-commands group is NOT included here — it is always rendered first,\n * separately. Derived from `groupedItems` + `searchResultGroups` (which remain\n * available as the raw, per-source building blocks).\n */\n orderedGroups: CommandMenuPaletteGroup[];\n /** True while an omnibox record search is in flight for the current query. */\n isSearching: boolean;\n isNavigationLoading: boolean;\n showRecent: boolean;\n showShortcuts: boolean;\n /**\n * Global open-shortcut string (e.g. `'Cmd+K'`) from config, or `undefined`\n * when none is declared. The preset renders it as the trigger's `⌘K` hint.\n */\n openShortcut: string | undefined;\n /**\n * Desktop max-width Tailwind class for the palette dialog (see\n * `[COMMAND_MENU].dialogWidth`). Always `sm:`-prefixed so mobile stays\n * near-full-width. Defaults to `sm:max-w-2xl`.\n */\n dialogWidth: string;\n}\n\nexport interface MenuUserOrgBehavior {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n isUserAuthenticated: boolean;\n userInitials: string;\n displayName: string;\n email: string;\n avatarUrl: string | undefined;\n currentOrganization: { _id: string; name: string } | undefined;\n organizations: { _id: string; name: string }[];\n /** Dropdown sections to render. The `SETTINGS` entry opens the unified Settings Hub. */\n sections: UserDropdownSection[];\n avatarDisplay: UserDropdownAvatarDisplay;\n showOrgSwitcher: boolean;\n showLogout: boolean;\n settingsTarget: ResolvedNavigationTarget | null;\n settingsTargets: ResolvedNavigationTarget[];\n popupAlignment: { align: HorizontalAlign; side: PlacementSide };\n handleLogout: () => void;\n handleSwitchOrg: (orgId: string) => void;\n handleNavigateToSettingsTarget: (target: ResolvedNavigationTarget) => void;\n}\n\nexport interface MenuBarBehavior {\n containerComponents: ResolvedHostedComponent[];\n /**\n * The identity to render as the bar's HOME affordance. Present ONLY when the menubar config\n * opted in (`brandHeader: true`), mirroring `useSidebarBehavior`'s `brandHeader`: a preset that\n * receives an identity unconditionally can render a mark on a surface the application never asked\n * to brand, and no type would catch it.\n */\n brandHeader?: BrandIdentity;\n /** Whether the current location is home — `aria-current` for the brand header. */\n isHomeActive: boolean;\n /** Home navigation with a fresh navigation start, the same act as the sidebar's brand header. */\n handleHomeClick: () => void;\n items: {\n id: string;\n label: string;\n icon?: React.ReactNode;\n group?: string;\n /** Whether this item is the current destination — at most one item is (see `useMenuBarBehavior`). */\n isActive: boolean;\n onExecute: () => void;\n }[];\n menubarConfig: {\n mode: string;\n isOverlay: boolean;\n showMobileLayout: boolean;\n };\n mapToFrontendComponentType: (type: ApplicationLevelComponentType) => FrontendComponentType | null;\n}\n"]}
1
+ {"version":3,"file":"app-shell.schemas.js","sourceRoot":"","sources":["../../../../../src/core/app-shell/app-shell.schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAmM1E,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,WAAW,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,CAAC;AAC3G,CAAC;AAoBD,0GAA0G;AAC1G,MAAM,UAAU,uBAAuB,CAAC,MAAe;IACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjF,CAAC;AAWD,MAAM,UAAU,0BAA0B,CAAC,MAAe;IACxD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,MAAiC,CAAC;IACpD,MAAM,eAAe,GACnB,SAAS,CAAC,QAAQ,KAAK,SAAS;QAChC,SAAS,CAAC,QAAQ,KAAK,mBAAmB,CAAC,KAAK;QAChD,SAAS,CAAC,QAAQ,KAAK,mBAAmB,CAAC,GAAG,CAAC;IACjD,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAErF,OAAO,eAAe,IAAI,YAAY,CAAC;AACzC,CAAC;AAkLD,MAAM,CAAN,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACvC,8CAAa,CAAA;IACb,0EAAyC,CAAA;IACzC,4CAAW,CAAA;AACb,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,QAIxC;AAkHD,MAAM,CAAN,IAAY,+BAIX;AAJD,WAAY,+BAA+B;IACzC,oDAAiB,CAAA;IACjB,gDAAa,CAAA;IACb,oDAAiB,CAAA;AACnB,CAAC,EAJW,+BAA+B,KAA/B,+BAA+B,QAI1C;AA8CD,MAAM,CAAN,IAAY,uBAKX;AALD,WAAY,uBAAuB;IACjC,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;IACjB,4CAAiB,CAAA;AACnB,CAAC,EALW,uBAAuB,KAAvB,uBAAuB,QAKlC;AAmOD;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACrC,oDAAqB,CAAA;IACrB,kDAAmB,CAAA;AACrB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC","sourcesContent":["import type React from 'react';\nimport type { UseFormReturn } from 'react-hook-form';\nimport type { z } from 'zod';\n\nimport { HorizontalPlacement } from '@wildo-ai/presets-components-models';\nimport type { VerticalPlacement } from '@wildo-ai/presets-components-models';\nimport type { ForeignKeyDisplayMode, ViewportBreakpoint } from '@wildo-ai/zod-decorators';\nimport type { AppScopeFieldDefinition } from '~wildo-frontend-lib/core/resources/resources.frontend.schemas';\nimport type { ApplicationLevelComponentType, StatusBarItemType, StatusBarPlacement } from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport type {\n QuickSwitcherFieldPresentation,\n UserDropdownAvatarDisplay,\n UserDropdownSection,\n} from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport type { FrontendComponentType, PlacementSide } from '@wildo-ai/presets-components-models';\nimport type { ComponentRegistryRef } from '~wildo-frontend-lib/core/components-registry/component-registry.frontend.schemas';\nimport type { StandardIconReference } from '~wildo-frontend-lib/core/icons/icon-registry.frontend.schemas';\nimport type { LauncherItemTargetKind } from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport type { HorizontalAlign, LayoutDirection } from '@wildo-ai/zod-decorators';\nimport type { Notification } from '~wildo-frontend-lib/core/events/NotificationContext';\nimport type { AnyNavigationItem } from '~wildo-frontend-lib/core/navigation/navigation.schemas';\nimport type { ResolvedControlPanelItem, ResolvedNavigationTarget } from '~wildo-frontend-lib/core/navigation/launcher-resolution';\nimport type { WebSocketStatus } from '~wildo-frontend-lib/core/requests/websockets/WebSocketContext';\nimport type {\n ActivityBarRendering,\n AppModeDefinition,\n ResourceBrowserClickContext,\n SidebarHomeDisplayMode,\n SidebarSection,\n SidebarSectionBehavior,\n SidebarSectionContentKind,\n SidebarSectionInlineCreate,\n SidebarHostedComponent,\n UtilityPanelItem,\n} from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport type { BrandAssetTheme } from '@wildo-ai/saas-models';\nimport type { BrandIdentity } from '~wildo-frontend-lib/core/branding/useBrandIdentity';\nimport { SidebarResponsivePolicy } from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\nimport type { HostedTriggerAppearance } from '~wildo-frontend-lib/core/config/launcher-items.frontend.schemas';\n\n\n/** Navigation item with optional children for hierarchical rendering */\nexport type HierarchicalNavigationItem = AnyNavigationItem & {\n children?: AnyNavigationItem[];\n /**\n * Canonical favorite identity for FAVORITES-section copies. A favorited item\n * renders twice (its origin section AND the favorites section); the favorites\n * copy carries a DISTINCT `id` (so the exactly-one-active invariant keeps a\n * single highlighted row) and `favoriteId` = the origin item's id — the key\n * the favorites store persists and the star toggle operates on. Absent on\n * origin items (their own `id` IS the favorite key).\n */\n favoriteId?: string;\n};\n\n/**\n * A hosted component resolved from a surface's `hostedComponents` config entry,\n * ready for the preset to mount. Shared by BOTH the menubar and the sidebar —\n * they run one hosting pipeline (`resolveHostedComponents`) so the container\n * inversion model, interaction ownership, and per-placement width thread through\n * a single implementation rather than being duplicated per surface.\n *\n * `instanceId` is SURFACE-QUALIFIED (e.g. `menubar:command_menu-0`) so the\n * shell-level interaction owner can disambiguate the same component hosted in\n * two surfaces at once (a command-menu trigger in the menubar AND the sidebar).\n */\nexport interface ResolvedHostedComponent {\n instanceId: string;\n component: ApplicationLevelComponentType;\n frontendComponentType: FrontendComponentType;\n /**\n * Horizontal zone (menubar) or vertical end (sidebar). Always concrete:\n * `resolveHostedComponents` normalizes an omitted config `placement` to the\n * surface's default zone (menubar START / sidebar TOP), so preset-side\n * per-zone equality filters can never silently drop a hosted component.\n */\n placement: HorizontalPlacement | VerticalPlacement;\n presetName?: string;\n /** Per-placement trigger width override (see `MenubarHostedComponent.triggerWidth`). */\n triggerWidth?: string | number;\n /** Per-placement trigger appearance (see `HostedTriggerAppearance`). */\n triggerAppearance?: HostedTriggerAppearance;\n}\n\n/**\n * Lightweight rendering props extracted from a sidebar section definition.\n * Used by the rendering layer (sidebar preset) to render section headers,\n * collapse behavior, and inline create — without coupling to the config schema.\n */\nexport interface SectionRenderProps {\n ref: string;\n label?: string;\n icon?: string;\n /** Whether the section header (label + icon) is rendered. Defaults to `true`. */\n showLabel: boolean;\n collapsible: boolean;\n defaultCollapsed: boolean;\n /**\n * Primary navigation group — rendered at the top of the sidebar (no header,\n * not collapsible), sharing that group with the framework Home row when\n * `homeDisplayMode` is `NAVIGATION_ITEM`. See\n * `SidebarSection_NavigationList.isPrimary`.\n */\n isPrimary?: boolean;\n behavior?: SidebarSectionBehavior;\n inlineCreate?: SidebarSectionInlineCreate;\n inlineCreateResourceType?: string;\n nested?: boolean;\n maxNestingDepth?: number;\n}\n\n/**\n * A grouped sidebar section for rendering.\n *\n * When `contentKind` is undefined or `NAVIGATION_LIST`, this is a traditional\n * navigation item list. When `contentKind` is a different variant, the section\n * renders specialized content and `items` will be empty.\n */\nexport interface SectionGroup {\n section: SectionRenderProps;\n items: HierarchicalNavigationItem[];\n moreMenuItems: HierarchicalNavigationItem[];\n /**\n * Discriminant from the new per-launcher config. When undefined, this section\n * was produced by the old scan-based path (treat as NAVIGATION_LIST).\n */\n contentKind?: SidebarSectionContentKind;\n /** RESOURCE_BROWSER: resource type to browse. */\n resourceType?: string;\n /** RESOURCE_BROWSER: operation override. */\n operation?: string;\n /** RESOURCE_BROWSER: operation variant. */\n operationVariant?: string;\n /** RESOURCE_BROWSER: click/navigation operation override. */\n navigateOperation?: string;\n /** RESOURCE_BROWSER: click/navigation operation variant. */\n navigateOperationVariant?: string;\n /** RESOURCE_BROWSER: client-side instance filter. */\n instanceFilter?: (instance: Record<string, unknown>) => boolean;\n /** RESOURCE_BROWSER: custom click handler. */\n onInstanceClick?: (context: ResourceBrowserClickContext) => void;\n /** GUIDANCE_WIDGET: guidance component ref. */\n guidanceRef?: string;\n /** CUSTOM_COMPONENT: custom component ref. */\n componentRef?: string;\n}\n\n/**\n * Sidebar config object — matches the transformed shape from `UIContext`\n * (`ViewportAwareAppLevelComponentConfigurationSchema` → transformer →\n * `{ placement, collapsible, policy }`).\n *\n * The raw model uses `responsivePolicy`, but the transformer renames it\n * to `policy` in the runtime config.\n */\nexport interface SidebarConfigObject {\n placement: HorizontalPlacement.START | HorizontalPlacement.END;\n collapsible: boolean;\n /**\n * Starting rail state for a visitor with NO stored preference. Absent means\n * the framework default, expanded. A persisted\n * `LOCAL_STORAGE_KEYS.SIDEBAR_COLLAPSED` always wins over it — this is a\n * starting position, not a lock.\n */\n defaultCollapsed?: boolean;\n policy: SidebarResponsivePolicy;\n /**\n * Viewport threshold at (or below) which the responsive `policy` applies.\n * Authored as `responsiveBreakpoint` in the raw model and carried through the\n * UIContext transformer's rest-spread. Defaults to `ViewportBreakpoint.MOBILE`\n * (the Zod schema default) when absent.\n */\n responsiveBreakpoint?: ViewportBreakpoint;\n /**\n * How the sidebar surfaces HOME (hidden / pinned brand header / navigation\n * row). Absent means the framework default, `NAVIGATION_ITEM`, applied by\n * `useSidebarBehavior`.\n */\n homeDisplayMode?: SidebarHomeDisplayMode;\n /**\n * Pins which brand-mark variant the BRAND_HEADER mode renders (e.g.\n * `MONOCHROME`). Absent means adaptive light/dark.\n */\n brandMarkTheme?: BrandAssetTheme;\n /** Per-launcher content declarations — discriminated union on `contentKind`. */\n contentSections?: SidebarSection[];\n /** Components hosted inside the sidebar via container inversion (mirror of menubar `hostedComponents`). */\n hostedComponents?: SidebarHostedComponent[];\n defaultSection?: string;\n /** Desktop sidebar width in px. Defaults to 256. */\n width?: number;\n /** Mobile sidebar width in px. Defaults to 280. */\n mobileWidth?: number;\n /** Desktop collapsed width in px. Defaults to 64. */\n collapsedWidth?: number;\n /** Mobile collapsed width in px. Defaults to 56. */\n mobileCollapsedWidth?: number;\n}\n\nexport function isSidebarConfigObject(config: unknown): config is SidebarConfigObject {\n return typeof config === 'object' && config !== null && 'placement' in config && 'collapsible' in config;\n}\n\n/**\n * The object form of the status bar's configuration. The configuration is `boolean | StatusBarPlacement (the\n * string shorthand) | StatusBarConfigObject`.\n */\nexport interface StatusBarConfigObject {\n placement?: StatusBarPlacement;\n showMemoryUsage?: boolean;\n showNotificationCount?: boolean;\n showConnectionStatus?: boolean;\n showConnectionStatusOnMobile?: boolean;\n backgroundClassName?: string;\n textClassName?: string;\n showBorder?: boolean;\n height?: number;\n statusItems?: StatusBarConfigItem[];\n style?: React.CSSProperties;\n}\n\n/** Narrowing guard for the object form, distinguishing it from the boolean and string-shorthand forms. */\nexport function isStatusBarConfigObject(config: unknown): config is StatusBarConfigObject {\n return typeof config === 'object' && config !== null && !Array.isArray(config);\n}\n\nexport type UtilityPanelPlacement =\n | HorizontalPlacement.START\n | HorizontalPlacement.END;\n\nexport interface UtilityPanelConfigObject {\n items?: UtilityPanelItem[];\n position?: UtilityPanelPlacement;\n}\n\nexport function isUtilityPanelConfigObject(config: unknown): config is UtilityPanelConfigObject {\n if (typeof config !== 'object' || config === null || Array.isArray(config)) {\n return false;\n }\n\n const candidate = config as Record<string, unknown>;\n const isValidPosition =\n candidate.position === undefined ||\n candidate.position === HorizontalPlacement.START ||\n candidate.position === HorizontalPlacement.END;\n const isValidItems = candidate.items === undefined || Array.isArray(candidate.items);\n\n return isValidPosition && isValidItems;\n}\n\n\n// ---------------------------------------------------------------------------\n// Behavior hook return types\n// ---------------------------------------------------------------------------\n\n/**\n * Standalone navigation behavioral utilities — active-state checking,\n * display policy evaluation, click dispatch, and home navigation.\n *\n * Does NOT include items — consumers obtain items from per-launcher\n * resolution or auto-items.\n *\n * `handleNavigationClick` accepts `launcher` as a second parameter since\n * this interface is not scoped to a single launcher.\n */\nexport interface NavigationBehaviors {\n isNavigationItemActive: (urlPath: string) => boolean;\n shouldShowItem: (item: AnyNavigationItem) => 'visible' | 'more_menu' | 'hidden';\n handleNavigationClick: (item: AnyNavigationItem, launcher: ApplicationLevelComponentType) => void;\n handleHomeClick: () => void;\n isHomeActive: boolean;\n}\n\nexport interface SidebarBehavior {\n groupedSections: SectionGroup[];\n /**\n * Components hosted in the sidebar (container inversion), resolved from\n * `[SIDEBAR].hostedComponents` through the SAME pipeline the menubar uses.\n * The preset resolves each via the component registry and mounts it with the\n * shell-level interaction-owner props.\n */\n hostedComponents: ResolvedHostedComponent[];\n isCollapsed: boolean;\n isHomeActive: boolean;\n dimensions: { width: number; collapsedWidth: number };\n sidebarConfig: {\n isCollapsible: boolean;\n responsivePolicy: SidebarResponsivePolicy;\n placementClass: string;\n currentWidth: number;\n };\n isNavigationLoading: boolean;\n hasItems: boolean;\n placement: HorizontalPlacement;\n\n /**\n * How the sidebar must surface HOME — hidden, the pinned brand header, or a\n * navigation row. Resolved from config with the framework default applied, so\n * a preset never re-derives it.\n */\n homeDisplayMode: SidebarHomeDisplayMode;\n /**\n * App name + resolved brand-asset URL for the pinned header. Present ONLY in\n * `SidebarHomeDisplayMode.BRAND_HEADER`; `logoUrl` is itself optional because\n * an application may not have generated a brand yet.\n */\n brandHeader?: BrandIdentity;\n\n /**\n * `true` when the current viewport is at (or below) the sidebar's configured\n * `responsiveBreakpoint` AND the responsive policy is `BURGER`. In this mode the\n * sidebar renders NOTHING inline (width 0) and instead opens as an overlay drawer\n * (`isMobileDrawerOpen`) toggled by the menubar burger / `HOTKEY_SIDEBAR_TOGGLE`.\n */\n isMobileDrawerMode: boolean;\n /** Drawer open state — only meaningful while `isMobileDrawerMode` is true. */\n isMobileDrawerOpen: boolean;\n /** Closes the mobile drawer (backdrop click, Escape, post-navigation dismiss). */\n closeMobileDrawer: () => void;\n\n /**\n * Active-state check keyed on the ITEM's resolved `id`, not on the raw path:\n * two DISTINCT items sharing an identical `urlPath` (e.g. an item and its\n * favorites-section copy, which carries a `favorite-` prefixed id) must not\n * both highlight — one id (the first in section order carrying the winning\n * path) is elected (frontend-ux-quality-audit E2). Caveat: resolved ids are\n * deterministic per TARGET (`resolved-<type>-<op>-<variant>`), so declaring\n * the SAME launcher target in two sections yields two rows with one shared\n * id, and both still highlight — dedupe such declarations in config instead\n * (WT once declared Todos twice and hit exactly this).\n */\n isNavigationItemActive: (item: { id: string; urlPath?: string }) => boolean;\n isSectionCollapsed: (section: SectionRenderProps) => boolean;\n isItemCollapsed: (itemId: string) => boolean;\n\n handleNavigationClick: (item: AnyNavigationItem) => void;\n handleHomeClick: () => void;\n handleToggleCollapse: () => void;\n /**\n * Record a section's collapsed state. A SETTER rather than a toggle, deliberately: the\n * effective collapsed state is resolved from a stored entry, then `defaultSection`, then\n * `section.defaultCollapsed`, so a toggle that negated only the stored entry ignored the\n * first interaction on any section declaring `defaultCollapsed: true` (#631). Pass the value\n * the collapsible primitive gives you; do not re-derive it.\n */\n handleSetSectionCollapsed: (sectionRef: string, collapsed: boolean) => void;\n handleToggleItemCollapse: (itemId: string) => void;\n\n /**\n * `true` when the item is in the user's favorites. Accepts either an origin\n * item (keyed by its own `id`) or a favorites-section copy (keyed by its\n * `favoriteId`).\n */\n isItemFavorite: (item: Pick<HierarchicalNavigationItem, 'id' | 'favoriteId'>) => boolean;\n /**\n * Toggles the item in the persisted favorites set (star affordance). The\n * favorites section re-populates immediately; storage is machine-local\n * (`LOCAL_STORAGE_KEYS.SIDEBAR_FAVORITES`).\n */\n handleToggleItemFavorite: (item: Pick<HierarchicalNavigationItem, 'id' | 'favoriteId'>) => void;\n /**\n * Whether any `SidebarSectionBehavior.FAVORITES` section is configured — the\n * preset only offers the star affordance when favoriting has a destination.\n */\n hasFavoritesSection: boolean;\n\n inlineCreate: {\n activeSection: string | null;\n value: string;\n start: (sectionRef: string) => void;\n cancel: () => void;\n submit: (sectionRef: string, resourceType?: string) => void;\n setValue: (value: string) => void;\n };\n}\n\nexport interface AppShellLayoutInfo {\n hasMenubar: boolean;\n hasSidebar: boolean;\n hasStatusBar: boolean;\n hasToolbar: boolean;\n hasActivityBar: boolean;\n hasQuickActionButton: boolean;\n hasUtilityPanel: boolean;\n sidebarPlacement: HorizontalPlacement.START | HorizontalPlacement.END;\n statusBarPlacement: StatusBarPlacement;\n utilityPanelPlacement: UtilityPanelPlacement;\n isLayoutReady: boolean;\n}\n\nexport interface PublicShellLayoutInfo {\n useCardLayout: boolean;\n isReady: boolean;\n /**\n * The identity to present above the public card, or `undefined` when the application has not\n * opted in via `publicShellIdentityMode`.\n *\n * EXPOSED only in the opted-in mode rather than always, mirroring `useSidebarBehavior`'s\n * `brandHeader`: a preset that receives an identity unconditionally can render a mark on a\n * surface the application never asked to brand, and no type would catch it.\n */\n brandHeader?: BrandIdentity;\n /** Tenant accent for the identity ornament only; never replaces accessible application theme tokens. */\n brandAccentColor?: string;\n}\n\nexport interface ToolbarDisplayItem {\n id: string;\n label: string;\n icon?: React.ReactNode;\n iconOnly?: boolean;\n onClick: () => void;\n}\n\nexport interface ToolbarBehavior {\n tools: ToolbarDisplayItem[];\n toolbarConfig: {\n placement: 'top' | 'bottom';\n compact: boolean;\n showSeparator: boolean;\n hideOnMobile: boolean;\n };\n shouldRender: boolean;\n currentBreakpoint: string | undefined;\n}\n\nexport enum QuickSwitcherFieldControlKind {\n ENUM = 'enum',\n RESOURCE_REFERENCE = 'resource_reference',\n RAW = 'raw',\n}\n\nexport interface QuickSwitcherResolvedField {\n fieldId: string;\n /** Guaranteed non-empty (config label → resource title → humanized field id → field id). */\n label: string;\n schema: z.ZodTypeAny;\n valueSchema: z.ZodTypeAny;\n disabled: boolean;\n isMultiple: boolean;\n controlKind: QuickSwitcherFieldControlKind;\n /**\n * Explicit target for `RESOURCE_REFERENCE` controls whose schema carries no\n * `isForeignKey` metadata — i.e. the primary-key fallback, where the switcher\n * is by definition selecting an instance of the scope field's `resourceType`.\n * `undefined` for FK-decorated schemas (the FK metadata names the target).\n */\n targetResourceType?: string;\n /** Input placeholder — localized resource title, falling back to `label`. Non-empty. */\n placeholder: string;\n /**\n * How each dropdown option renders — the declared\n * `appScope.fields[].optionDisplayMode`, defaulted to `LABEL`. Reuses the\n * framework's FK-rendering vocabulary: `LABEL` is the resource's own display\n * label, `SUMMARY` is its summary card.\n */\n optionDisplayMode: ForeignKeyDisplayMode;\n /**\n * Clear this field's ambient scope. A scope is inherently OPTIONAL — \"no list\n * selected\" is a first-class state the collection surfaces already produce —\n * so the control always offers an explicit way back to it rather than relying\n * on the combobox's undiscoverable re-click-to-toggle.\n */\n onClear: () => void;\n /** Whether anything is currently selected (drives the clear affordance). */\n hasValue: boolean;\n /**\n * How the closed control presents — the declared\n * `appScope.fields[].presentation`, defaulted to `CONTROL_ONLY`.\n *\n * Carried as DATA, never as a rendered node: resolving the resource's icon is\n * component-registry work, so the preset does it. Behavior hooks in this\n * framework never return `ReactNode` nor perform registry resolution.\n */\n presentation: QuickSwitcherFieldPresentation;\n definition: AppScopeFieldDefinition;\n}\n\nexport interface QuickSwitcherBehavior {\n fields: QuickSwitcherResolvedField[];\n formMethods: UseFormReturn;\n layoutDirection: 'horizontal' | 'vertical';\n /**\n * Monotonically increasing counter — incremented when the\n * `HOTKEY_QUICK_SWITCHER_OPEN` event fires. Presets should watch\n * this value and focus the first enabled field when it changes.\n */\n focusTrigger: number;\n}\n\nexport interface StatusBarBehavior {\n totalBadgeCount: number;\n connectionStatus: WebSocketStatus;\n showConnectionStatus: boolean;\n showConnectionStatusOnMobile: boolean;\n shouldShowConnectionStatus: boolean;\n showNotificationCount: boolean;\n shouldShowNotificationCount: boolean;\n showMemoryUsage: boolean;\n memoryUsageLabel: string | null;\n notificationCountLabel: string;\n notificationCountAriaLabel: string;\n connectionStatusLabel: string;\n statusItems: StatusBarDisplayItem[];\n dimensions: { height: number };\n statusBarConfig: {\n isTop: boolean;\n isBottom: boolean;\n isMobile: boolean;\n backgroundClassName: string;\n textClassName: string;\n showBorder: boolean;\n };\n customStyle?: React.CSSProperties;\n currentBreakpoint: string | undefined;\n}\n\nexport interface StatusBarConfigItemBase {\n id: string;\n label: string;\n type: StatusBarItemType;\n icon?: string;\n value?: string | number;\n}\n\nexport interface StatusBarConfigItem_Link extends StatusBarConfigItemBase {\n type: StatusBarItemType.LINK;\n href: string;\n}\n\nexport interface StatusBarConfigItem_Button extends StatusBarConfigItemBase {\n type: StatusBarItemType.BUTTON;\n onClick: () => void;\n}\n\nexport interface StatusBarConfigItem_Text extends StatusBarConfigItemBase {\n type: StatusBarItemType.TEXT;\n}\n\nexport type StatusBarConfigItem =\n | StatusBarConfigItem_Link\n | StatusBarConfigItem_Button\n | StatusBarConfigItem_Text;\n\nexport enum StatusBarDisplayInteractionType {\n STATIC = 'static',\n LINK = 'link',\n BUTTON = 'button',\n}\n\nexport interface StatusBarDisplayInteraction_Static {\n type: StatusBarDisplayInteractionType.STATIC;\n}\n\nexport interface StatusBarDisplayInteraction_Link {\n type: StatusBarDisplayInteractionType.LINK;\n href: string;\n}\n\nexport interface StatusBarDisplayInteraction_Button {\n type: StatusBarDisplayInteractionType.BUTTON;\n onClick: () => void;\n}\n\nexport type StatusBarDisplayInteraction =\n | StatusBarDisplayInteraction_Static\n | StatusBarDisplayInteraction_Link\n | StatusBarDisplayInteraction_Button;\n\nexport interface StatusBarDisplayItem {\n id: string;\n label: string;\n iconReference?: string;\n valueText?: string;\n interaction: StatusBarDisplayInteraction;\n}\n\nexport interface ActivityBarLayout {\n direction: LayoutDirection;\n borderSide: PlacementSide;\n tooltipSide: PlacementSide;\n orientation: LayoutDirection;\n}\n\nexport interface ActivityBarBehavior {\n availableModes: AppModeDefinition[];\n activeMode: string | null;\n setActiveMode: (mode: string) => void;\n hasModes: boolean;\n activeRenderingMode: ActivityBarRendering;\n layout: ActivityBarLayout;\n isNavigationLoading: boolean;\n}\n\nexport enum ControlPanelControlType {\n BUTTON = 'button',\n TOGGLE = 'toggle',\n SLIDER = 'slider',\n SELECT = 'select',\n}\n\nexport interface ControlPanelBehavior {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n groupedItems: Record<string, ControlPanelNavigationItem[]>;\n sections: ControlPanelSection[];\n controls: ControlPanelDisplayControl[];\n handleItemClick: (item: ControlPanelNavigationItem) => void;\n sheetSide: PlacementSide;\n isNavigationLoading: boolean;\n navigationItemCount: number;\n currentBreakpoint: string | undefined;\n}\n\nexport type ControlPanelNavigationItem = ResolvedControlPanelItem;\n\nexport interface ControlPanelSection {\n id: string;\n label: string;\n items: ControlPanelNavigationItem[];\n}\n\nexport interface ControlPanelDisplayControlBase {\n id: string;\n label: string;\n type: ControlPanelControlType;\n disabled: boolean;\n}\n\nexport interface ControlPanelDisplayControl_Button extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.BUTTON;\n onTrigger: () => void;\n}\n\nexport interface ControlPanelDisplayControl_Toggle extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.TOGGLE;\n value: boolean;\n onToggle: () => void;\n}\n\nexport interface ControlPanelDisplayControl_SelectOption {\n label: string;\n value: unknown;\n isSelected: boolean;\n onSelect: () => void;\n}\n\nexport interface ControlPanelDisplayControl_Select extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.SELECT;\n value?: unknown;\n options: ControlPanelDisplayControl_SelectOption[];\n}\n\nexport interface ControlPanelDisplayControl_Slider extends ControlPanelDisplayControlBase {\n type: ControlPanelControlType.SLIDER;\n value: number;\n min: number;\n max: number;\n step: number;\n onValueChange: (value: number) => void;\n}\n\nexport type ControlPanelDisplayControl =\n | ControlPanelDisplayControl_Button\n | ControlPanelDisplayControl_Toggle\n | ControlPanelDisplayControl_Select\n | ControlPanelDisplayControl_Slider;\n\n/**\n * One panel item, normalized for display, discriminated the same way its config is (#504).\n *\n * `resolvedComponentRef` and `resolvedViewRef` are both nullable and both mean the SAME thing: the item\n * names something this panel cannot host, and the preset must show that rather than render chrome\n * that looks like a component with nothing to say. Keeping the two kinds apart here is what stops\n * the preset guessing which ref an item meant.\n */\nexport type UtilityPanelDisplayItem =\n | {\n kind: LauncherItemTargetKind.CUSTOM_COMPONENT;\n componentRef: string;\n /**\n * The registry key the preset renders, or `null` when nothing is registered under that ref in\n * the default preset. Engine AND application components resolve here (#549); it used to be\n * `componentType: FrontendComponentType | null`, which made every application component `null`.\n */\n resolvedComponentRef: ComponentRegistryRef | null;\n icon: string;\n label: string;\n }\n | {\n kind: LauncherItemTargetKind.VIEW;\n viewRef: string;\n /** `null` when no declared view carries that ref, so an unknown ref is reported and not rendered blank. */\n resolvedViewRef: string | null;\n icon: string;\n label: string;\n };\n\nexport interface UtilityPanelBehavior {\n /** Whether the panel is expanded/open. */\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n /** Panel items normalized for display without moving registry resolution into the hook. */\n items: UtilityPanelDisplayItem[];\n /** Number of items. */\n itemCount: number;\n /** Horizontal position (START or END only). */\n position: UtilityPanelPlacement;\n /** Current breakpoint for responsive adjustments. */\n currentBreakpoint: string | undefined;\n}\n\n/**\n * The notification centre's contract — a SESSION FEED, not a message history (#412).\n *\n * Four members were removed on 2026-09-08 and each was asserting something the store cannot hold.\n * The store behind this is a `useReducer` with no hydration: it starts empty on every page load, and\n * nothing that arrived while the tab was closed is recoverable.\n *\n * | removed | why it could not be true |\n * |---|---|\n * | `unreadCount` / `handleMarkAllAsRead` | \"unread\" was a function of when the tab OPENED, and marking something read meant nothing — the state died with the page. A badge counting it was counting the current session's arrivals and calling them unread. |\n * | `filter` / `setFilter` | the only filter was ALL vs UNREAD, so it filtered on the read state above. Filtering \"what arrived since this page loaded\" by whether you had glanced at it is not a question anyone has. |\n * | `groupedNotifications` | today / yesterday / older, over a buffer that cannot contain a yesterday. The `older` bucket was unreachable and `yesterday` only fillable by leaving a tab open overnight. |\n *\n * What is left says what it is: the arrivals, newest first, each dismissable, and a way to clear\n * them. Persisting instead was weighed and declined — it creates a per-user personal-data store\n * carrying retention, privacy-classification, subject-export and erasure obligations for message\n * content, which is the real cost, not the table.\n */\nexport interface NotificationCenterBehavior {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n /** Everything that has arrived since this page loaded, newest first. */\n sessionNotifications: NotificationCenterDisplayNotification[];\n notificationCount: number;\n handleClearAll: () => void;\n dismissNotification: (notificationId: string) => void;\n}\n\nexport interface NotificationCenterDisplayNotification {\n id: string;\n type: Notification['type'];\n source: Notification['source'];\n timestamp: number;\n displayTitle: string;\n displayMessage: string;\n relativeTimeLabel: string;\n iconReference: StandardIconReference;\n nextStep?: Notification['nextStep'];\n}\n\nexport interface QuickActionButtonDisplayItem {\n id: string;\n label: string;\n icon?: React.ReactNode;\n displayPolicy?: string;\n onClick: () => void;\n}\n\nexport interface QuickActionButtonBehavior {\n allItems: QuickActionButtonDisplayItem[];\n primaryAction: QuickActionButtonDisplayItem | null;\n menuActions: QuickActionButtonDisplayItem[];\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n handleActionClick: (item: QuickActionButtonDisplayItem) => void;\n hasActions: boolean;\n isNavigationLoading: boolean;\n currentBreakpoint: string | undefined;\n}\n\nexport interface CommandMenuItem {\n id: string;\n label: string;\n shortcut: string;\n icon?: React.ReactNode;\n category: string;\n keywords: string[];\n /** Internal policy from config — used by the hook to control grouping/visibility. */\n displayPolicy?: string;\n onExecute: () => void;\n}\n\nexport interface CommandMenuGroup {\n category: string;\n label: string;\n items: CommandMenuItem[];\n}\n\n/**\n * One live omnibox record-search result. Intentionally DISTINCT from\n * {@link CommandMenuItem}: a search result is a resource RECORD (it carries the\n * full summary-mode DTO in `record` + its `resourceType`) so the palette can\n * render it as the resource's summary VIEW (summary card), whereas a\n * `CommandMenuItem` is a static navigation command that only ever renders a\n * label + icon. Merging the two would collapse that semantic distinction and\n * force every static command to carry a nullable record.\n */\nexport interface CommandMenuSearchResultItem {\n id: string;\n /** Resource type of the matched record — drives summary-view + navigation. */\n resourceType: string;\n /** Full summary-mode DTO returned by SEARCH — fed to the summary renderer. */\n record: Record<string, unknown>;\n /** Resolved one-line label (LABEL display mode + summary-card fallback). */\n label: string;\n /**\n * Client-side match terms carried so cmdk's filter never drops a legitimate\n * server hit (always includes the raw query; matches may be on a field absent\n * from the label, e.g. `description`).\n */\n keywords: string[];\n /** Navigate to the matched record's addressable READ view, then close. */\n onExecute: () => void;\n}\n\n/** A group of omnibox search results for one searched resource. */\nexport interface CommandMenuSearchResultGroup {\n category: string;\n label: string;\n /** How each item in this group renders (summary card vs. one-line label). */\n displayMode: ForeignKeyDisplayMode;\n items: CommandMenuSearchResultItem[];\n}\n\n/**\n * Discriminant for {@link CommandMenuPaletteGroup} — whether an entry in the\n * unified, ordered palette list is a static command-category group or a live\n * record-search result group. The two stay DISTINCT types (a command is a\n * navigation target rendering a label; a record carries a full DTO rendering a\n * summary card) — this union only sequences them in one render order, it does\n * not merge their semantics.\n */\nexport enum CommandMenuPaletteGroupKind {\n COMMANDS = 'commands',\n RECORDS = 'records',\n}\n\n/**\n * One entry in the palette's SINGLE ordered group list — either a static\n * command-category group or a live record-search group, tagged with the numeric\n * `order` weight the palette sorted by (lower = higher). Produced by\n * `useCommandMenuBehavior` so the preset renders one uniform, ordered sequence\n * (record groups default above command groups while searching) instead of two\n * hard-coded blocks. The recent-commands group is rendered separately (always\n * pinned to the top) and is not part of this list.\n */\nexport type CommandMenuPaletteGroup =\n | { kind: CommandMenuPaletteGroupKind.COMMANDS; order: number; group: CommandMenuGroup }\n | { kind: CommandMenuPaletteGroupKind.RECORDS; order: number; group: CommandMenuSearchResultGroup };\n\nexport interface CommandMenuBehavior {\n isOpen: boolean;\n handleOpenChange: (open: boolean) => void;\n searchQuery: string;\n setSearchQuery: (query: string) => void;\n commandItems: CommandMenuItem[];\n groupedItems: CommandMenuGroup[];\n recentItems: CommandMenuItem[];\n /**\n * Live record-search result groups (omnibox layer). Empty unless the\n * `COMMAND_MENU` config sets `policy: OMNIBOX` with `searchResources` and the\n * current query meets the minimum length. Each item's `onExecute` navigates\n * to the matched record's READ view. Items render as the resource's summary\n * view (or a one-line label per the resource's `resultDisplay` config).\n */\n searchResultGroups: CommandMenuSearchResultGroup[];\n /**\n * The unified, ORDERED render list the preset iterates: record groups and\n * static command-category groups merged and sorted by a single numeric `order`\n * weight (record groups default above command groups while searching; apps\n * override per record group via `CommandMenuSearchResource.order`, and command\n * categories sequence among themselves via `[COMMAND_MENU].categoryOrder`).\n * The recent-commands group is NOT included here — it is always rendered first,\n * separately. Derived from `groupedItems` + `searchResultGroups` (which remain\n * available as the raw, per-source building blocks).\n */\n orderedGroups: CommandMenuPaletteGroup[];\n /** True while an omnibox record search is in flight for the current query. */\n isSearching: boolean;\n isNavigationLoading: boolean;\n showRecent: boolean;\n showShortcuts: boolean;\n /**\n * Global open-shortcut string (e.g. `'Cmd+K'`) from config, or `undefined`\n * when none is declared. The preset renders it as the trigger's `⌘K` hint.\n */\n openShortcut: string | undefined;\n /**\n * Desktop max-width Tailwind class for the palette dialog (see\n * `[COMMAND_MENU].dialogWidth`). Always `sm:`-prefixed so mobile stays\n * near-full-width. Defaults to `sm:max-w-2xl`.\n */\n dialogWidth: string;\n}\n\nexport interface MenuUserOrgBehavior {\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n isUserAuthenticated: boolean;\n userInitials: string;\n displayName: string;\n email: string;\n avatarUrl: string | undefined;\n currentOrganization: { _id: string; name: string } | undefined;\n /**\n * The organizations the person can switch into. `viaProviderOrganizationName` is present only on a CLIENT\n * organization they work in as a service firm's expert (#1597) — the firm's name, so the switcher can\n * group clients apart from the person's own organizations and say through whom each is reached. A\n * client appears only while its relationship is live: the organization read behind this list passes the\n * per-request live filter, so an ended or paused relationship drops the client from the switcher.\n */\n organizations: { _id: string; name: string; viaProviderOrganizationName?: string }[];\n /** Dropdown sections to render. The `SETTINGS` entry opens the unified Settings Hub. */\n sections: UserDropdownSection[];\n avatarDisplay: UserDropdownAvatarDisplay;\n showOrgSwitcher: boolean;\n showLogout: boolean;\n settingsTarget: ResolvedNavigationTarget | null;\n settingsTargets: ResolvedNavigationTarget[];\n popupAlignment: { align: HorizontalAlign; side: PlacementSide };\n handleLogout: () => void;\n handleSwitchOrg: (orgId: string) => void;\n handleNavigateToSettingsTarget: (target: ResolvedNavigationTarget) => void;\n}\n\nexport interface MenuBarBehavior {\n containerComponents: ResolvedHostedComponent[];\n /**\n * The identity to render as the bar's HOME affordance. Present ONLY when the menubar config\n * opted in (`brandHeader: true`), mirroring `useSidebarBehavior`'s `brandHeader`: a preset that\n * receives an identity unconditionally can render a mark on a surface the application never asked\n * to brand, and no type would catch it.\n */\n brandHeader?: BrandIdentity;\n /** Whether the current location is home — `aria-current` for the brand header. */\n isHomeActive: boolean;\n /** Home navigation with a fresh navigation start, the same act as the sidebar's brand header. */\n handleHomeClick: () => void;\n items: {\n id: string;\n label: string;\n icon?: React.ReactNode;\n group?: string;\n /** Whether this item is the current destination — at most one item is (see `useMenuBarBehavior`). */\n isActive: boolean;\n /** The badge KEY to draw beside the label (`NavigationItemBadge`), when the declaration names one. */\n notificationBadgeRef?: string;\n onExecute: () => void;\n }[];\n menubarConfig: {\n mode: string;\n isOverlay: boolean;\n showMobileLayout: boolean;\n };\n mapToFrontendComponentType: (type: ApplicationLevelComponentType) => FrontendComponentType | null;\n}\n"]}
@@ -1,4 +1,14 @@
1
+ import { type StatusBarPlacement } from '../../core/config/app-level-components.frontend.schemas';
1
2
  import type { AppShellLayoutInfo } from './app-shell.schemas';
3
+ /**
4
+ * The status bar's placement from its configuration: the shorthand string, or the object form's `placement`.
5
+ *
6
+ * Unconfigured means the bottom edge. A configured value no layout can place — `MIDDLE`, or any other string —
7
+ * used to be passed through and render the status bar NOWHERE (#2037); it is now reported, and the status bar is
8
+ * shown at the bottom edge, where an unconfigured one goes. Reporting rather than refusing: the configuration is
9
+ * the application's to correct, and a missing status bar is a worse outcome than one at its default edge.
10
+ */
11
+ export declare function resolveStatusBarPlacement(statusBarConfig: unknown): StatusBarPlacement;
2
12
  /**
3
13
  * Pure behavior hook for the app shell layout — computes which app-level
4
14
  * components are present and their placement, and gates application
@@ -1 +1 @@
1
- {"version":3,"file":"useAppShellLayout.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-shell/useAppShellLayout.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9D;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,CAyDtD"}
1
+ {"version":3,"file":"useAppShellLayout.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-shell/useAppShellLayout.ts"],"names":[],"mappings":"AAUA,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,uEAAuE,CAAC;AAEtI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAM9D;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,OAAO,GAAG,kBAAkB,CActF;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,kBAAkB,CAqDtD"}
@@ -4,7 +4,34 @@ import { ApplicationLevelComponentType } from '../../core/config/app-level-compo
4
4
  import { useUI } from '../../core/ui/useUI.js';
5
5
  import { useApplication } from '../../core/runtime/useApplication.js';
6
6
  import { MainContextInitComponents } from '../../core/runtime/runtime.frontend.schemas.js';
7
+ import { LoggerFrontendService } from '../../core/monitoring/logger.frontend.service.js';
8
+ import { isStatusBarPlacement } from '../../core/config/app-level-components.frontend.schemas.js';
7
9
  import { isSidebarConfigObject, isStatusBarConfigObject, isUtilityPanelConfigObject } from './app-shell.schemas.js';
10
+ /** Values already reported, so a render loop reports each unplaceable value once. */
11
+ const reportedStatusBarPlacements = new Set();
12
+ /**
13
+ * The status bar's placement from its configuration: the shorthand string, or the object form's `placement`.
14
+ *
15
+ * Unconfigured means the bottom edge. A configured value no layout can place — `MIDDLE`, or any other string —
16
+ * used to be passed through and render the status bar NOWHERE (#2037); it is now reported, and the status bar is
17
+ * shown at the bottom edge, where an unconfigured one goes. Reporting rather than refusing: the configuration is
18
+ * the application's to correct, and a missing status bar is a worse outcome than one at its default edge.
19
+ */
20
+ export function resolveStatusBarPlacement(statusBarConfig) {
21
+ const configured = typeof statusBarConfig === 'string'
22
+ ? statusBarConfig
23
+ : isStatusBarConfigObject(statusBarConfig) ? statusBarConfig.placement : undefined;
24
+ if (configured === undefined)
25
+ return VerticalPlacement.BOTTOM;
26
+ if (isStatusBarPlacement(configured))
27
+ return configured;
28
+ const value = String(configured);
29
+ if (!reportedStatusBarPlacements.has(value)) {
30
+ reportedStatusBarPlacements.add(value);
31
+ LoggerFrontendService.getLogger().warn(`[app-shell] the status bar is configured at '${value}', which no shell layout places (only '${VerticalPlacement.TOP}' and '${VerticalPlacement.BOTTOM}'); it is shown at '${VerticalPlacement.BOTTOM}'.`);
32
+ }
33
+ return VerticalPlacement.BOTTOM;
34
+ }
8
35
  /**
9
36
  * Pure behavior hook for the app shell layout — computes which app-level
10
37
  * components are present and their placement, and gates application
@@ -53,11 +80,7 @@ export function useAppShellLayout() {
53
80
  hasQuickActionButton: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.QUICK_ACTION_BUTTON]),
54
81
  hasUtilityPanel: Boolean(utilityPanelConfig),
55
82
  sidebarPlacement,
56
- statusBarPlacement: typeof statusBarConfig === 'string'
57
- ? statusBarConfig
58
- : isStatusBarConfigObject(statusBarConfig)
59
- ? statusBarConfig.placement ?? VerticalPlacement.BOTTOM
60
- : VerticalPlacement.BOTTOM,
83
+ statusBarPlacement: resolveStatusBarPlacement(statusBarConfig),
61
84
  utilityPanelPlacement: isUtilityPanelConfigObject(utilityPanelConfig)
62
85
  ? utilityPanelConfig.position ?? HorizontalPlacement.END
63
86
  : HorizontalPlacement.END,
@@ -1 +1 @@
1
- {"version":3,"file":"useAppShellLayout.js","sourceRoot":"","sources":["../../../../../src/core/app-shell/useAppShellLayout.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo } from 'react';\n\nimport { HorizontalPlacement, VerticalPlacement } from '@wildo-ai/presets-components-models';\nimport { ApplicationLevelComponentType } from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication';\nimport { MainContextInitComponents } from '~wildo-frontend-lib/core/runtime/runtime.frontend.schemas';\n\nimport type { AppShellLayoutInfo } from './app-shell.schemas';\nimport { isSidebarConfigObject, isStatusBarConfigObject, isUtilityPanelConfigObject } from './app-shell.schemas';\n\n/**\n * Pure behavior hook for the app shell layout — computes which app-level\n * components are present and their placement, and gates application\n * initialization via `markComponentInitialized`.\n *\n * `has*` flags reflect *config presence*, not visibility (breakpoint-gated\n * visibility is the preset's responsibility).\n */\nexport function useAppShellLayout(): AppShellLayoutInfo {\n const { UIConfig, navigationLayout: resolvedNavigationLayout, appComponentsConfiguration } = useUI();\n const { markComponentInitialized } = useApplication();\n\n const isLayoutReady = Boolean(resolvedNavigationLayout && appComponentsConfiguration);\n\n useEffect(() => {\n if (isLayoutReady) {\n markComponentInitialized(MainContextInitComponents.APP_MAIN_CONTAINER);\n }\n }, [isLayoutReady, markComponentInitialized]);\n\n return useMemo((): AppShellLayoutInfo => {\n if (!isLayoutReady || !resolvedNavigationLayout || !appComponentsConfiguration) {\n return {\n hasMenubar: false,\n hasSidebar: false,\n hasStatusBar: false,\n hasToolbar: false,\n hasActivityBar: false,\n hasQuickActionButton: false,\n hasUtilityPanel: false,\n sidebarPlacement: HorizontalPlacement.START,\n statusBarPlacement: VerticalPlacement.BOTTOM,\n utilityPanelPlacement: HorizontalPlacement.END,\n isLayoutReady: false,\n };\n }\n\n const sidebarConfig = appComponentsConfiguration[ApplicationLevelComponentType.SIDEBAR] as unknown;\n const statusBarConfig = appComponentsConfiguration[ApplicationLevelComponentType.STATUS_BAR];\n const utilityPanelConfig = appComponentsConfiguration[ApplicationLevelComponentType.UTILITY_PANEL];\n\n const sidebarPlacement = isSidebarConfigObject(sidebarConfig)\n ? sidebarConfig.placement\n : HorizontalPlacement.START;\n\n return {\n hasMenubar: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.MENUBAR]),\n hasSidebar: Boolean(sidebarConfig),\n hasStatusBar: Boolean(statusBarConfig),\n hasToolbar: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.TOOLBAR]),\n hasActivityBar: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.ACTIVITY_BAR]),\n hasQuickActionButton: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.QUICK_ACTION_BUTTON]),\n hasUtilityPanel: Boolean(utilityPanelConfig),\n sidebarPlacement,\n statusBarPlacement: typeof statusBarConfig === 'string'\n ? statusBarConfig as VerticalPlacement\n : isStatusBarConfigObject(statusBarConfig)\n ? statusBarConfig.placement ?? VerticalPlacement.BOTTOM\n : VerticalPlacement.BOTTOM,\n utilityPanelPlacement: isUtilityPanelConfigObject(utilityPanelConfig)\n ? utilityPanelConfig.position ?? HorizontalPlacement.END\n : HorizontalPlacement.END,\n isLayoutReady: true,\n };\n }, [isLayoutReady, resolvedNavigationLayout, appComponentsConfiguration]);\n}\n"]}
1
+ {"version":3,"file":"useAppShellLayout.js","sourceRoot":"","sources":["../../../../../src/core/app-shell/useAppShellLayout.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useMemo } from 'react';\n\nimport { HorizontalPlacement, VerticalPlacement } from '@wildo-ai/presets-components-models';\nimport { ApplicationLevelComponentType } from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication';\nimport { MainContextInitComponents } from '~wildo-frontend-lib/core/runtime/runtime.frontend.schemas';\n\nimport { LoggerFrontendService } from '~wildo-frontend-lib/core/monitoring/logger.frontend.service';\n\nimport { isStatusBarPlacement, type StatusBarPlacement } from '~wildo-frontend-lib/core/config/app-level-components.frontend.schemas';\n\nimport type { AppShellLayoutInfo } from './app-shell.schemas';\nimport { isSidebarConfigObject, isStatusBarConfigObject, isUtilityPanelConfigObject } from './app-shell.schemas';\n\n/** Values already reported, so a render loop reports each unplaceable value once. */\nconst reportedStatusBarPlacements = new Set<string>();\n\n/**\n * The status bar's placement from its configuration: the shorthand string, or the object form's `placement`.\n *\n * Unconfigured means the bottom edge. A configured value no layout can place — `MIDDLE`, or any other string —\n * used to be passed through and render the status bar NOWHERE (#2037); it is now reported, and the status bar is\n * shown at the bottom edge, where an unconfigured one goes. Reporting rather than refusing: the configuration is\n * the application's to correct, and a missing status bar is a worse outcome than one at its default edge.\n */\nexport function resolveStatusBarPlacement(statusBarConfig: unknown): StatusBarPlacement {\n const configured = typeof statusBarConfig === 'string'\n ? statusBarConfig\n : isStatusBarConfigObject(statusBarConfig) ? statusBarConfig.placement : undefined;\n if (configured === undefined) return VerticalPlacement.BOTTOM;\n if (isStatusBarPlacement(configured)) return configured;\n const value = String(configured);\n if (!reportedStatusBarPlacements.has(value)) {\n reportedStatusBarPlacements.add(value);\n LoggerFrontendService.getLogger().warn(\n `[app-shell] the status bar is configured at '${value}', which no shell layout places (only '${VerticalPlacement.TOP}' and '${VerticalPlacement.BOTTOM}'); it is shown at '${VerticalPlacement.BOTTOM}'.`,\n );\n }\n return VerticalPlacement.BOTTOM;\n}\n\n/**\n * Pure behavior hook for the app shell layout — computes which app-level\n * components are present and their placement, and gates application\n * initialization via `markComponentInitialized`.\n *\n * `has*` flags reflect *config presence*, not visibility (breakpoint-gated\n * visibility is the preset's responsibility).\n */\nexport function useAppShellLayout(): AppShellLayoutInfo {\n const { UIConfig, navigationLayout: resolvedNavigationLayout, appComponentsConfiguration } = useUI();\n const { markComponentInitialized } = useApplication();\n\n const isLayoutReady = Boolean(resolvedNavigationLayout && appComponentsConfiguration);\n\n useEffect(() => {\n if (isLayoutReady) {\n markComponentInitialized(MainContextInitComponents.APP_MAIN_CONTAINER);\n }\n }, [isLayoutReady, markComponentInitialized]);\n\n return useMemo((): AppShellLayoutInfo => {\n if (!isLayoutReady || !resolvedNavigationLayout || !appComponentsConfiguration) {\n return {\n hasMenubar: false,\n hasSidebar: false,\n hasStatusBar: false,\n hasToolbar: false,\n hasActivityBar: false,\n hasQuickActionButton: false,\n hasUtilityPanel: false,\n sidebarPlacement: HorizontalPlacement.START,\n statusBarPlacement: VerticalPlacement.BOTTOM,\n utilityPanelPlacement: HorizontalPlacement.END,\n isLayoutReady: false,\n };\n }\n\n const sidebarConfig = appComponentsConfiguration[ApplicationLevelComponentType.SIDEBAR] as unknown;\n const statusBarConfig = appComponentsConfiguration[ApplicationLevelComponentType.STATUS_BAR];\n const utilityPanelConfig = appComponentsConfiguration[ApplicationLevelComponentType.UTILITY_PANEL];\n\n const sidebarPlacement = isSidebarConfigObject(sidebarConfig)\n ? sidebarConfig.placement\n : HorizontalPlacement.START;\n\n return {\n hasMenubar: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.MENUBAR]),\n hasSidebar: Boolean(sidebarConfig),\n hasStatusBar: Boolean(statusBarConfig),\n hasToolbar: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.TOOLBAR]),\n hasActivityBar: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.ACTIVITY_BAR]),\n hasQuickActionButton: Boolean(appComponentsConfiguration[ApplicationLevelComponentType.QUICK_ACTION_BUTTON]),\n hasUtilityPanel: Boolean(utilityPanelConfig),\n sidebarPlacement,\n statusBarPlacement: resolveStatusBarPlacement(statusBarConfig),\n utilityPanelPlacement: isUtilityPanelConfigObject(utilityPanelConfig)\n ? utilityPanelConfig.position ?? HorizontalPlacement.END\n : HorizontalPlacement.END,\n isLayoutReady: true,\n };\n }, [isLayoutReady, resolvedNavigationLayout, appComponentsConfiguration]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"usePublicShellLayout.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-shell/usePublicShellLayout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,UAAQ,EACrB,oBAAoB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,GACxE,qBAAqB,CAuCvB"}
1
+ {"version":3,"file":"usePublicShellLayout.d.ts","sourceRoot":"","sources":["../../../../../src/core/app-shell/usePublicShellLayout.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAQxE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAqCjE;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,UAAQ,EACrB,oBAAoB,CAAC,EAAE,0BAA0B,CAAC,sBAAsB,CAAC,GACxE,qBAAqB,CAyCvB"}
@@ -4,6 +4,43 @@ import { useApplication } from '../../core/runtime/useApplication.js';
4
4
  import { MainContextInitComponents } from '../../core/runtime/runtime.frontend.schemas.js';
5
5
  import { PublicShellIdentityMode } from '../../core/config/app-configuration-frontend.schemas.js';
6
6
  import { useBrandIdentity } from '../../core/branding/useBrandIdentity.js';
7
+ /**
8
+ * Show the tenant's favicon in the browser tab while its sign-in card is on screen (#1799).
9
+ *
10
+ * The organization's `branding.favicon` was stored, edited and read by nothing. The sign-in card is the
11
+ * one place organization branding is applied — its logo and colour already replace the application's
12
+ * there — so that is where its tab icon is applied too. Every `rel="icon"` link is pointed at the
13
+ * tenant's icon, and restored to what it was when the card goes away or the tenant changes, so the
14
+ * application's own icon returns everywhere else.
15
+ */
16
+ function useTenantFavicon(faviconUrl) {
17
+ useEffect(() => {
18
+ if (!faviconUrl)
19
+ return undefined;
20
+ const links = Array.from(document.querySelectorAll('link[rel~="icon"]'));
21
+ const created = links.length === 0 ? document.createElement('link') : undefined;
22
+ if (created) {
23
+ created.rel = 'icon';
24
+ document.head.appendChild(created);
25
+ }
26
+ const targets = created ? [created] : links;
27
+ const previous = targets.map((link) => link.getAttribute('href'));
28
+ targets.forEach((link) => { link.href = faviconUrl; });
29
+ return () => {
30
+ if (created) {
31
+ created.remove();
32
+ return;
33
+ }
34
+ targets.forEach((link, index) => {
35
+ const href = previous[index];
36
+ if (href === null || href === undefined)
37
+ link.removeAttribute('href');
38
+ else
39
+ link.setAttribute('href', href);
40
+ });
41
+ };
42
+ }, [faviconUrl]);
43
+ }
7
44
  /**
8
45
  * Pure behavior hook for the public shell layout.
9
46
  *
@@ -39,6 +76,7 @@ export function usePublicShellLayout(useCardLayout = false, organizationBranding
39
76
  logoComposition: undefined,
40
77
  } : brandIdentity;
41
78
  const brandHeader = frontendConfiguration.publicShellIdentityMode === PublicShellIdentityMode.BRAND_HEADER ? loginIdentity : undefined;
79
+ useTenantFavicon(tenant?.faviconUrl);
42
80
  return {
43
81
  useCardLayout,
44
82
  isReady: true,
@@ -1 +1 @@
1
- {"version":3,"file":"usePublicShellLayout.js","sourceRoot":"","sources":["../../../../../src/core/app-shell/usePublicShellLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,iDAAiD,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2DAA2D,CAAC;AACtG,OAAO,EAAE,uBAAuB,EAAE,MAAM,oEAAoE,CAAC;AAC7G,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AAItF;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,aAAa,GAAG,KAAK,EACrB,oBAAyE;IAEzE,MAAM,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,GAAG,cAAc,EAAE,CAAC;IAE7E,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IAC3E,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAE/B;;;;;;;;;;OAUG;IACH,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,EAAE,CAAC;IAClC,8FAA8F;IAC9F,+FAA+F;IAC/F,MAAM,MAAM,GAAG,aAAa,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IAClF,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC;QAC7B,IAAI,EAAE,MAAM,CAAC,gBAAgB,IAAI,aAAa,CAAC,IAAI;QACnD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,aAAa,CAAC,OAAO;QAChD,4FAA4F;QAC5F,qFAAqF;QACrF,eAAe,EAAE,SAAS;KAC3B,CAAC,CAAC,CAAC,aAAa,CAAC;IAClB,MAAM,WAAW,GACf,qBAAqB,CAAC,uBAAuB,KAAK,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAErH,OAAO;QACL,aAAa;QACb,OAAO,EAAE,IAAI;QACb,WAAW;QACX,gBAAgB,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect } from 'react';\nimport type { AuthIdentificationResponse } from '@wildo-ai/saas-models';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\n\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication';\nimport { MainContextInitComponents } from '~wildo-frontend-lib/core/runtime/runtime.frontend.schemas';\nimport { PublicShellIdentityMode } from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport { useBrandIdentity } from '~wildo-frontend-lib/core/branding/useBrandIdentity';\n\nimport type { PublicShellLayoutInfo } from './app-shell.schemas';\n\n/**\n * Pure behavior hook for the public shell layout.\n *\n * Gates application initialization via `markComponentInitialized` on mount, exposes layout mode\n * (`useCardLayout`), and resolves the identity the public pages may present.\n */\nexport function usePublicShellLayout(\n useCardLayout = false,\n organizationBranding?: AuthIdentificationResponse['organizationBranding'],\n): PublicShellLayoutInfo {\n const { markComponentInitialized, frontendConfiguration } = useApplication();\n\n useEffect(() => {\n markComponentInitialized(MainContextInitComponents.PUBLIC_APP_CONTAINER);\n }, [markComponentInitialized]);\n\n /*\n * Read UNCONDITIONALLY (rules of hooks) but EXPOSED only in the opted-in mode, which is exactly\n * how `useSidebarBehavior` gates its own brand header — so a preset cannot render an application's\n * mark on a surface the application never opted into, and the gate lives in one place rather than\n * in each preset that happens to remember it.\n *\n * `SYMBOL` is the requested composition (the default): the header renders the NAME as text beside\n * the mark, and a lockup would print the name twice. `resolveBrandAsset`'s last fallback rung can\n * still return a wordmark or lockup for a brand that generated no symbol, which is why the\n * presentation layer branches on the composition it ACTUALLY got.\n */\n const brandIdentity = useBrandIdentity();\n const { shellIdentity } = useUI();\n // A tool shell represents itself, not the tenant in the application it observes. The explicit\n // page input also prevents a previous login attempt from branding registration or legal pages.\n const tenant = useCardLayout && !shellIdentity ? organizationBranding : undefined;\n const loginIdentity = tenant ? {\n name: tenant.organizationName || brandIdentity.name,\n logoUrl: tenant.logoUrl || brandIdentity.logoUrl,\n // Neither a tenant URL nor an application fallback proves that the mark contains the tenant\n // name. Keep that name visible instead of applying application-wordmark suppression.\n logoComposition: undefined,\n } : brandIdentity;\n const brandHeader =\n frontendConfiguration.publicShellIdentityMode === PublicShellIdentityMode.BRAND_HEADER ? loginIdentity : undefined;\n\n return {\n useCardLayout,\n isReady: true,\n brandHeader,\n brandAccentColor: brandHeader ? tenant?.primaryColor : undefined,\n };\n}\n"]}
1
+ {"version":3,"file":"usePublicShellLayout.js","sourceRoot":"","sources":["../../../../../src/core/app-shell/usePublicShellLayout.ts"],"names":[],"mappings":"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","sourcesContent":["import { useEffect } from 'react';\nimport type { AuthIdentificationResponse } from '@wildo-ai/saas-models';\nimport { useUI } from '~wildo-frontend-lib/core/ui/useUI';\n\nimport { useApplication } from '~wildo-frontend-lib/core/runtime/useApplication';\nimport { MainContextInitComponents } from '~wildo-frontend-lib/core/runtime/runtime.frontend.schemas';\nimport { PublicShellIdentityMode } from '~wildo-frontend-lib/core/config/app-configuration-frontend.schemas';\nimport { useBrandIdentity } from '~wildo-frontend-lib/core/branding/useBrandIdentity';\n\nimport type { PublicShellLayoutInfo } from './app-shell.schemas';\n\n/**\n * Show the tenant's favicon in the browser tab while its sign-in card is on screen (#1799).\n *\n * The organization's `branding.favicon` was stored, edited and read by nothing. The sign-in card is the\n * one place organization branding is applied — its logo and colour already replace the application's\n * there — so that is where its tab icon is applied too. Every `rel=\"icon\"` link is pointed at the\n * tenant's icon, and restored to what it was when the card goes away or the tenant changes, so the\n * application's own icon returns everywhere else.\n */\nfunction useTenantFavicon(faviconUrl: string | undefined): void {\n useEffect(() => {\n if (!faviconUrl) return undefined;\n const links = Array.from(document.querySelectorAll<HTMLLinkElement>('link[rel~=\"icon\"]'));\n const created = links.length === 0 ? document.createElement('link') : undefined;\n if (created) {\n created.rel = 'icon';\n document.head.appendChild(created);\n }\n const targets = created ? [created] : links;\n const previous = targets.map((link) => link.getAttribute('href'));\n targets.forEach((link) => { link.href = faviconUrl; });\n return () => {\n if (created) {\n created.remove();\n return;\n }\n targets.forEach((link, index) => {\n const href = previous[index];\n if (href === null || href === undefined) link.removeAttribute('href');\n else link.setAttribute('href', href);\n });\n };\n }, [faviconUrl]);\n}\n\n/**\n * Pure behavior hook for the public shell layout.\n *\n * Gates application initialization via `markComponentInitialized` on mount, exposes layout mode\n * (`useCardLayout`), and resolves the identity the public pages may present.\n */\nexport function usePublicShellLayout(\n useCardLayout = false,\n organizationBranding?: AuthIdentificationResponse['organizationBranding'],\n): PublicShellLayoutInfo {\n const { markComponentInitialized, frontendConfiguration } = useApplication();\n\n useEffect(() => {\n markComponentInitialized(MainContextInitComponents.PUBLIC_APP_CONTAINER);\n }, [markComponentInitialized]);\n\n /*\n * Read UNCONDITIONALLY (rules of hooks) but EXPOSED only in the opted-in mode, which is exactly\n * how `useSidebarBehavior` gates its own brand header — so a preset cannot render an application's\n * mark on a surface the application never opted into, and the gate lives in one place rather than\n * in each preset that happens to remember it.\n *\n * `SYMBOL` is the requested composition (the default): the header renders the NAME as text beside\n * the mark, and a lockup would print the name twice. `resolveBrandAsset`'s last fallback rung can\n * still return a wordmark or lockup for a brand that generated no symbol, which is why the\n * presentation layer branches on the composition it ACTUALLY got.\n */\n const brandIdentity = useBrandIdentity();\n const { shellIdentity } = useUI();\n // A tool shell represents itself, not the tenant in the application it observes. The explicit\n // page input also prevents a previous login attempt from branding registration or legal pages.\n const tenant = useCardLayout && !shellIdentity ? organizationBranding : undefined;\n const loginIdentity = tenant ? {\n name: tenant.organizationName || brandIdentity.name,\n logoUrl: tenant.logoUrl || brandIdentity.logoUrl,\n // Neither a tenant URL nor an application fallback proves that the mark contains the tenant\n // name. Keep that name visible instead of applying application-wordmark suppression.\n logoComposition: undefined,\n } : brandIdentity;\n const brandHeader =\n frontendConfiguration.publicShellIdentityMode === PublicShellIdentityMode.BRAND_HEADER ? loginIdentity : undefined;\n\n useTenantFavicon(tenant?.faviconUrl);\n\n return {\n useCardLayout,\n isReady: true,\n brandHeader,\n brandAccentColor: brandHeader ? tenant?.primaryColor : undefined,\n };\n}\n"]}
@@ -75,11 +75,25 @@ export declare class AutomatedLayoutFrontendUtils {
75
75
  * rather than as a plausible name.
76
76
  * When `resourceType` is not provided, uses `formatFieldPathFallback` directly.
77
77
  *
78
+ * ## A path that ends INSIDE a structured value names the value (#1959)
79
+ *
80
+ * A validation error on a money field's amount arrives at `amount.amount`, on an address's first
81
+ * line at `address.line1`. Those parts are not fields of the resource: the value's own component
82
+ * draws and names them, and the resource has one word for the whole value — so no label is planned
83
+ * for `amount.amount`, and asking for one would render the raw part name after the field's label.
84
+ * Given the form's `schema`, the resolver stops at the first segment whose schema does not hold
85
+ * fields (`isFieldContainerSchema`) and names that field alone. The inline error beside the part
86
+ * still says which part. Without a schema every segment is resolved as before.
87
+ *
88
+ * The same boundary ends a path into an ARRAY that continues with a name rather than an index —
89
+ * `tags.root`, where react-hook-form puts an error about the list itself — which names the list.
90
+ *
78
91
  * @param resourceType - The resource type for i18n lookup
79
92
  * @param tResourceFieldEdit - i18n function for field label resolution
93
+ * @param schema - The form's schema, when known: lets the resolver stop at a structured value
80
94
  * @returns A function that resolves a dot-path to a human-readable label
81
95
  */
82
- static createFieldLabelResolver(resourceType: string | undefined, tResourceFieldEdit: (resourceType: string, fieldPath: string, key: string) => string): (path: string) => string;
96
+ static createFieldLabelResolver(resourceType: string | undefined, tResourceFieldEdit: (resourceType: string, fieldPath: string, key: string) => string, schema?: z.ZodTypeAny): (path: string) => string;
83
97
  /**
84
98
  * Return object variants when a schema is a discriminated union of objects.
85
99
  * Returns an empty array for plain objects or non-object unions.
@@ -1 +1 @@
1
- {"version":3,"file":"automated-layout.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/automated-layout/automated-layout.frontend.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automated-layout.frontend.utils.d.ts","sourceRoot":"","sources":["../../../../../src/core/automated-layout/automated-layout.frontend.utils.ts"],"names":[],"mappings":"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"}