@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,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import React, { useCallback, useMemo, useRef, useState } from 'react';
3
+ import React, { useCallback, useLayoutEffect, useMemo, useRef, useState } from 'react';
4
4
  import { useFormContext } from 'react-hook-form';
5
5
  import { DisplayDirection } from '@wildo-ai/zod-decorators';
6
6
  import { FrontendComponentType } from '@wildo-ai/presets-components-models';
@@ -9,6 +9,7 @@ import { Stepper, StepperItem, StepperIndicator, StepperSeparator, StepperTitle,
9
9
  import { ErrorBoundary } from '../../../core/errors/ErrorBoundary.js';
10
10
  import { useI18n } from '../../../core/i18n/useI18n.js';
11
11
  import { useOptionalFormTemplateContext } from '../../../components/form/automated/FormTemplateContext.js';
12
+ import { useOptionalResourceFormActions } from '../../../components/form/automated/ResourceFormActionsContext.js';
12
13
  import { scrollAndFocusFirstErroredField } from '../../../components/form/validation-errors/scroll-to-first-error.utils.js';
13
14
  import { useWizardRootRegistration } from './FormLayoutSlotContext.js';
14
15
  import { WizardLayoutContext } from './WizardLayoutContext.js';
@@ -23,6 +24,12 @@ import { WizardStep } from './WizardStep.js';
23
24
  * Children must be `<WizardStep>` components. Non-WizardStep children are
24
25
  * silently filtered out.
25
26
  *
27
+ * Under a resource form (a create or edit dialog or page) the wizard OWNS the form's footer: it claims it
28
+ * (`claimFooter`) and renders the host's Cancel, draft-save and operation-named submit inside its own
29
+ * navigation row — the submit on the last step only. Otherwise the host appended its own Cancel/Create row
30
+ * under the wizard's Previous/Next, so "Create" on step 1 submitted without the later steps ever being seen,
31
+ * and the last step offered two submit buttons.
32
+ *
26
33
  * @example
27
34
  * ```tsx
28
35
  * <FormLayout>
@@ -46,6 +53,10 @@ export function WizardLayout({ className, initialStep = 0, validateOnStepChange
46
53
  const wizardTopRef = useRef(null);
47
54
  const form = useFormContext();
48
55
  const templateCtx = useOptionalFormTemplateContext();
56
+ const hostActions = useOptionalResourceFormActions();
57
+ const claimFooter = hostActions?.claimFooter;
58
+ // Layout effect: the claim lands before paint, so the host's footer never flashes under the wizard.
59
+ useLayoutEffect(() => claimFooter?.(), [claimFooter]);
49
60
  const { tComponent, isReady } = useI18n({
50
61
  component: FrontendComponentType.LOW_LEVEL_FORM_MESSAGE,
51
62
  });
@@ -127,7 +138,7 @@ export function WizardLayout({ className, initialStep = 0, validateOnStepChange
127
138
  return null;
128
139
  const previousLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardPrevious');
129
140
  const nextLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardNext');
130
- return (_jsx(WizardLayoutContext.Provider, { value: wizardContextValue, children: _jsxs("div", { className: className, "data-guidance-wizard": "", children: [_jsx("div", { ref: wizardTopRef, children: _jsx(Stepper, { currentStep: currentStep, totalSteps: totalSteps, orientation: DisplayDirection.HORIZONTAL, className: "mb-region", children: wizardSteps.map((step, index) => (_jsxs(React.Fragment, { children: [_jsxs(StepperItem, { step: index, children: [_jsx(StepperIndicator, { step: index }), _jsx("div", { className: "flex flex-col items-center text-center", children: _jsx(StepperTitle, { step: index, children: _jsx("span", { id: `wizard-tab-${step.name}`, children: getStepLabel(step.name, index) }) }) })] }), index < totalSteps - 1 && _jsx(StepperSeparator, { step: index })] }, step.name))) }) }), wizardSteps.map((step, index) => (_jsx("div", { style: { display: index === currentStep ? undefined : 'none' }, "aria-hidden": index !== currentStep, children: _jsx(ErrorBoundary, { children: step.element }) }, step.name))), _jsxs("div", { className: "flex justify-between gap-field pt-field", children: [_jsx(Button, { type: "button", variant: ButtonVariants_Variant.OUTLINE, onClick: handlePrevious, disabled: isFirstStep || templateCtx?.disabled, children: previousLabel }), _jsx("div", { className: "flex gap-element", children: isLastStep ? (submitButton ?? (_jsx(Button, { type: "submit", disabled: templateCtx?.disabled, children: tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardSubmit') }))) : (_jsx(Button, { type: "button", onClick: handleNext, disabled: templateCtx?.disabled, children: nextLabel })) })] })] }) }));
141
+ return (_jsx(WizardLayoutContext.Provider, { value: wizardContextValue, children: _jsxs("div", { className: className, "data-guidance-wizard": "", children: [_jsx("div", { ref: wizardTopRef, children: _jsx(Stepper, { currentStep: currentStep, totalSteps: totalSteps, orientation: DisplayDirection.HORIZONTAL, className: "mb-region", children: wizardSteps.map((step, index) => (_jsxs(React.Fragment, { children: [_jsxs(StepperItem, { step: index, children: [_jsx(StepperIndicator, { step: index }), _jsx("div", { className: "flex flex-col items-center text-center", children: _jsx(StepperTitle, { step: index, children: _jsx("span", { id: `wizard-tab-${step.name}`, children: getStepLabel(step.name, index) }) }) })] }), index < totalSteps - 1 && _jsx(StepperSeparator, { step: index })] }, step.name))) }) }), wizardSteps.map((step, index) => (_jsx("div", { style: { display: index === currentStep ? undefined : 'none' }, "aria-hidden": index !== currentStep, children: _jsx(ErrorBoundary, { children: step.element }) }, step.name))), hostActions?.submissionNotice, _jsxs("div", { className: "flex justify-between gap-field pt-field", children: [_jsx(Button, { type: "button", variant: ButtonVariants_Variant.OUTLINE, onClick: handlePrevious, disabled: isFirstStep || templateCtx?.disabled, children: previousLabel }), _jsxs("div", { className: "flex flex-wrap items-center justify-end gap-element", children: [hostActions?.cancelButton, hostActions?.draftSaveButton, isLastStep ? (submitButton ?? hostActions?.submitButton ?? (_jsx(Button, { type: "submit", disabled: templateCtx?.disabled, children: tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardSubmit') }))) : (_jsx(Button, { type: "button", onClick: handleNext, disabled: templateCtx?.disabled, children: nextLabel }))] })] })] }) }));
131
142
  }
132
143
  /**
133
144
  * Scroll to the first field with a validation error.
@@ -1 +1 @@
1
- {"version":3,"file":"WizardLayout.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { useCallback, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { DisplayDirection } from '@wildo-ai/zod-decorators';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { Button, ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport {\n Stepper,\n StepperItem,\n StepperIndicator,\n StepperSeparator,\n StepperTitle,\n} from '~wildo-frontend-lib/components/sections/stepper';\nimport { ErrorBoundary } from '~wildo-frontend-lib/core/errors/ErrorBoundary';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useOptionalFormTemplateContext } from '~wildo-frontend-lib/components/form/automated/FormTemplateContext';\nimport { scrollAndFocusFirstErroredField } from '~wildo-frontend-lib/components/form/validation-errors/scroll-to-first-error.utils';\nimport { useWizardRootRegistration } from './FormLayoutSlotContext';\nimport { WizardLayoutContext } from './WizardLayoutContext';\nimport { WizardStep } from './WizardStep';\n\nexport interface WizardLayoutProps {\n /** Additional CSS classes for the wizard container. */\n className?: string;\n /** 0-based index of the initially active step. @default 0 */\n initialStep?: number;\n /** When `true`, validates current step fields before allowing navigation forward. @default true */\n validateOnStepChange?: boolean;\n /** Callback fired when step changes (after validation, if enabled). */\n onStepChange?: (from: number, to: number) => void;\n /** Custom submit button to render on the last step instead of the default. */\n submitButton?: ReactNode;\n children: ReactNode;\n}\n\n/**\n * Wizard container for multi-step form templates.\n *\n * Manages step state, renders a Stepper UI, navigation buttons (prev/next/submit),\n * and per-step validation. All steps remain mounted (hidden with `display: none`)\n * so that RHF retains field state across steps.\n *\n * Children must be `<WizardStep>` components. Non-WizardStep children are\n * silently filtered out.\n *\n * @example\n * ```tsx\n * <FormLayout>\n * <WizardLayout>\n * <WizardStep name=\"basics\">\n * <FormField name=\"title\" />\n * <FormField name=\"description\" />\n * </WizardStep>\n * <WizardStep name=\"settings\">\n * <FormField name=\"priority\" />\n * <FormField name=\"dueDate\" />\n * </WizardStep>\n * </WizardLayout>\n * </FormLayout>\n * ```\n */\nexport function WizardLayout({\n className,\n initialStep = 0,\n validateOnStepChange = true,\n onStepChange,\n submitButton,\n children,\n}: WizardLayoutProps): ReactNode {\n useWizardRootRegistration();\n\n const [currentStep, setCurrentStep] = useState(initialStep);\n const stepFieldsRef = useRef<Map<string, Set<string>>>(new Map());\n const wizardTopRef = useRef<HTMLDivElement>(null);\n\n const form = useFormContext();\n const templateCtx = useOptionalFormTemplateContext();\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.LOW_LEVEL_FORM_MESSAGE,\n });\n\n const wizardSteps = useMemo(() => {\n const steps: Array<{ name: string; element: React.ReactElement }> = [];\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === WizardStep) {\n steps.push({\n name: (child.props as { name: string }).name,\n element: child,\n });\n }\n });\n return steps;\n }, [children]);\n\n const totalSteps = wizardSteps.length;\n\n const registerStep = useCallback((name: string, fields: Set<string>) => {\n stepFieldsRef.current.set(name, fields);\n }, []);\n\n const getCurrentStepFieldNames = useCallback(() => {\n const currentStepName = wizardSteps[currentStep]?.name;\n if (!currentStepName) return undefined;\n const stepFields = stepFieldsRef.current.get(currentStepName);\n return stepFields ? Array.from(stepFields) : undefined;\n }, [currentStep, wizardSteps]);\n\n const wizardContextValue = useMemo<React.ContextType<typeof WizardLayoutContext>>(\n () => ({ registerStep, getCurrentStepFieldNames, currentStep, totalSteps }),\n [registerStep, getCurrentStepFieldNames, currentStep, totalSteps],\n );\n\n /*\n * A DECLARED step always has an entry: its generated title, or — since #1450 — that title's key\n * path once the bundle has settled, so an unlabelled declared step reads as missing rather than\n * as \"Step 2\". The numbered default below is what remains for a step the layout does not declare\n * (no ref in `layoutRefs.wizardSteps`, so no label could be planned for it) and for the loading\n * window, when the title is still ''.\n */\n const getStepLabel = (stepName: string, index: number): string => {\n if (templateCtx?.wizardStepLabels?.[stepName]) {\n return templateCtx.wizardStepLabels[stepName];\n }\n return tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardStepDefault', {\n index: String(index + 1),\n });\n };\n\n const scrollToTop = () => {\n wizardTopRef.current?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n };\n\n const goToStep = (to: number) => {\n const from = currentStep;\n setCurrentStep(to);\n onStepChange?.(from, to);\n scrollToTop();\n };\n\n const handlePrevious = () => {\n if (currentStep > 0) {\n goToStep(currentStep - 1);\n }\n };\n\n const handleNext = async () => {\n if (validateOnStepChange && form) {\n const currentStepName = wizardSteps[currentStep]?.name;\n const stepFields = currentStepName\n ? stepFieldsRef.current.get(currentStepName)\n : undefined;\n\n const fieldNames = stepFields ? Array.from(stepFields) : [];\n const isValid = fieldNames.length\n ? await form.trigger(fieldNames)\n : await form.trigger();\n\n if (!isValid) {\n scrollToFirstError(form, fieldNames);\n return;\n }\n }\n if (currentStep < totalSteps - 1) {\n goToStep(currentStep + 1);\n }\n };\n\n const isFirstStep = currentStep === 0;\n const isLastStep = currentStep === totalSteps - 1;\n\n if (!isReady) return null;\n\n const previousLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardPrevious');\n const nextLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardNext');\n\n return (\n <WizardLayoutContext.Provider value={wizardContextValue}>\n <div className={className} data-guidance-wizard=\"\">\n <div ref={wizardTopRef}>\n <Stepper\n currentStep={currentStep}\n totalSteps={totalSteps}\n orientation={DisplayDirection.HORIZONTAL}\n className=\"mb-region\"\n >\n {wizardSteps.map((step, index) => (\n <React.Fragment key={step.name}>\n <StepperItem step={index}>\n <StepperIndicator step={index} />\n <div className=\"flex flex-col items-center text-center\">\n <StepperTitle step={index}>\n <span id={`wizard-tab-${step.name}`}>\n {getStepLabel(step.name, index)}\n </span>\n </StepperTitle>\n </div>\n </StepperItem>\n {index < totalSteps - 1 && <StepperSeparator step={index} />}\n </React.Fragment>\n ))}\n </Stepper>\n </div>\n\n {wizardSteps.map((step, index) => (\n <div\n key={step.name}\n style={{ display: index === currentStep ? undefined : 'none' }}\n aria-hidden={index !== currentStep}\n >\n <ErrorBoundary>\n {step.element}\n </ErrorBoundary>\n </div>\n ))}\n\n <div className=\"flex justify-between gap-field pt-field\">\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n onClick={handlePrevious}\n disabled={isFirstStep || templateCtx?.disabled}\n >\n {previousLabel}\n </Button>\n\n <div className=\"flex gap-element\">\n {isLastStep ? (\n submitButton ?? (\n <Button type=\"submit\" disabled={templateCtx?.disabled}>\n {tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardSubmit')}\n </Button>\n )\n ) : (\n <Button\n type=\"button\"\n onClick={handleNext}\n disabled={templateCtx?.disabled}\n >\n {nextLabel}\n </Button>\n )}\n </div>\n </div>\n </div>\n </WizardLayoutContext.Provider>\n );\n}\n\n/**\n * Scroll to the first field with a validation error.\n * Uses `data-field` or `name` attributes to locate the DOM element.\n */\nfunction scrollToFirstError(\n form: ReturnType<typeof useFormContext>,\n fieldNames?: string[],\n): void {\n const errors = form.formState.errors;\n let firstErrorField: string | null = null;\n\n if (fieldNames?.length) {\n for (const fieldName of fieldNames) {\n const parts = fieldName.split('.');\n let errorObj: unknown = errors;\n for (const part of parts) {\n if (errorObj && typeof errorObj === 'object' && part in errorObj) {\n errorObj = (errorObj as Record<string, unknown>)[part];\n } else {\n errorObj = undefined;\n break;\n }\n }\n if (errorObj) {\n firstErrorField = fieldName;\n break;\n }\n }\n }\n\n if (!firstErrorField) return;\n\n // Shared scroll+focus mechanics (see scroll-to-first-error.utils, audit D4) —\n // this wizard keeps its own STEP-SCOPED first-error selection above, but the\n // DOM lookup / scroll / focus behavior is the same contract the whole-form\n // submit path uses.\n scrollAndFocusFirstErroredField([firstErrorField]);\n}\n"]}
1
+ {"version":3,"file":"WizardLayout.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport React, { useCallback, useLayoutEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { useFormContext } from 'react-hook-form';\nimport { DisplayDirection } from '@wildo-ai/zod-decorators';\nimport { FrontendComponentType } from '@wildo-ai/presets-components-models';\nimport { Button, ButtonVariants_Variant } from '~wildo-frontend-lib/components/actions/button';\nimport {\n Stepper,\n StepperItem,\n StepperIndicator,\n StepperSeparator,\n StepperTitle,\n} from '~wildo-frontend-lib/components/sections/stepper';\nimport { ErrorBoundary } from '~wildo-frontend-lib/core/errors/ErrorBoundary';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useOptionalFormTemplateContext } from '~wildo-frontend-lib/components/form/automated/FormTemplateContext';\nimport { useOptionalResourceFormActions } from '~wildo-frontend-lib/components/form/automated/ResourceFormActionsContext';\nimport { scrollAndFocusFirstErroredField } from '~wildo-frontend-lib/components/form/validation-errors/scroll-to-first-error.utils';\nimport { useWizardRootRegistration } from './FormLayoutSlotContext';\nimport { WizardLayoutContext } from './WizardLayoutContext';\nimport { WizardStep } from './WizardStep';\n\nexport interface WizardLayoutProps {\n /** Additional CSS classes for the wizard container. */\n className?: string;\n /** 0-based index of the initially active step. @default 0 */\n initialStep?: number;\n /** When `true`, validates current step fields before allowing navigation forward. @default true */\n validateOnStepChange?: boolean;\n /** Callback fired when step changes (after validation, if enabled). */\n onStepChange?: (from: number, to: number) => void;\n /** Custom submit button to render on the last step instead of the default. */\n submitButton?: ReactNode;\n children: ReactNode;\n}\n\n/**\n * Wizard container for multi-step form templates.\n *\n * Manages step state, renders a Stepper UI, navigation buttons (prev/next/submit),\n * and per-step validation. All steps remain mounted (hidden with `display: none`)\n * so that RHF retains field state across steps.\n *\n * Children must be `<WizardStep>` components. Non-WizardStep children are\n * silently filtered out.\n *\n * Under a resource form (a create or edit dialog or page) the wizard OWNS the form's footer: it claims it\n * (`claimFooter`) and renders the host's Cancel, draft-save and operation-named submit inside its own\n * navigation row — the submit on the last step only. Otherwise the host appended its own Cancel/Create row\n * under the wizard's Previous/Next, so \"Create\" on step 1 submitted without the later steps ever being seen,\n * and the last step offered two submit buttons.\n *\n * @example\n * ```tsx\n * <FormLayout>\n * <WizardLayout>\n * <WizardStep name=\"basics\">\n * <FormField name=\"title\" />\n * <FormField name=\"description\" />\n * </WizardStep>\n * <WizardStep name=\"settings\">\n * <FormField name=\"priority\" />\n * <FormField name=\"dueDate\" />\n * </WizardStep>\n * </WizardLayout>\n * </FormLayout>\n * ```\n */\nexport function WizardLayout({\n className,\n initialStep = 0,\n validateOnStepChange = true,\n onStepChange,\n submitButton,\n children,\n}: WizardLayoutProps): ReactNode {\n useWizardRootRegistration();\n\n const [currentStep, setCurrentStep] = useState(initialStep);\n const stepFieldsRef = useRef<Map<string, Set<string>>>(new Map());\n const wizardTopRef = useRef<HTMLDivElement>(null);\n\n const form = useFormContext();\n const templateCtx = useOptionalFormTemplateContext();\n const hostActions = useOptionalResourceFormActions();\n const claimFooter = hostActions?.claimFooter;\n // Layout effect: the claim lands before paint, so the host's footer never flashes under the wizard.\n useLayoutEffect(() => claimFooter?.(), [claimFooter]);\n const { tComponent, isReady } = useI18n({\n component: FrontendComponentType.LOW_LEVEL_FORM_MESSAGE,\n });\n\n const wizardSteps = useMemo(() => {\n const steps: Array<{ name: string; element: React.ReactElement }> = [];\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === WizardStep) {\n steps.push({\n name: (child.props as { name: string }).name,\n element: child,\n });\n }\n });\n return steps;\n }, [children]);\n\n const totalSteps = wizardSteps.length;\n\n const registerStep = useCallback((name: string, fields: Set<string>) => {\n stepFieldsRef.current.set(name, fields);\n }, []);\n\n const getCurrentStepFieldNames = useCallback(() => {\n const currentStepName = wizardSteps[currentStep]?.name;\n if (!currentStepName) return undefined;\n const stepFields = stepFieldsRef.current.get(currentStepName);\n return stepFields ? Array.from(stepFields) : undefined;\n }, [currentStep, wizardSteps]);\n\n const wizardContextValue = useMemo<React.ContextType<typeof WizardLayoutContext>>(\n () => ({ registerStep, getCurrentStepFieldNames, currentStep, totalSteps }),\n [registerStep, getCurrentStepFieldNames, currentStep, totalSteps],\n );\n\n /*\n * A DECLARED step always has an entry: its generated title, or — since #1450 — that title's key\n * path once the bundle has settled, so an unlabelled declared step reads as missing rather than\n * as \"Step 2\". The numbered default below is what remains for a step the layout does not declare\n * (no ref in `layoutRefs.wizardSteps`, so no label could be planned for it) and for the loading\n * window, when the title is still ''.\n */\n const getStepLabel = (stepName: string, index: number): string => {\n if (templateCtx?.wizardStepLabels?.[stepName]) {\n return templateCtx.wizardStepLabels[stepName];\n }\n return tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardStepDefault', {\n index: String(index + 1),\n });\n };\n\n const scrollToTop = () => {\n wizardTopRef.current?.scrollIntoView({ behavior: 'smooth', block: 'start' });\n };\n\n const goToStep = (to: number) => {\n const from = currentStep;\n setCurrentStep(to);\n onStepChange?.(from, to);\n scrollToTop();\n };\n\n const handlePrevious = () => {\n if (currentStep > 0) {\n goToStep(currentStep - 1);\n }\n };\n\n const handleNext = async () => {\n if (validateOnStepChange && form) {\n const currentStepName = wizardSteps[currentStep]?.name;\n const stepFields = currentStepName\n ? stepFieldsRef.current.get(currentStepName)\n : undefined;\n\n const fieldNames = stepFields ? Array.from(stepFields) : [];\n const isValid = fieldNames.length\n ? await form.trigger(fieldNames)\n : await form.trigger();\n\n if (!isValid) {\n scrollToFirstError(form, fieldNames);\n return;\n }\n }\n if (currentStep < totalSteps - 1) {\n goToStep(currentStep + 1);\n }\n };\n\n const isFirstStep = currentStep === 0;\n const isLastStep = currentStep === totalSteps - 1;\n\n if (!isReady) return null;\n\n const previousLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardPrevious');\n const nextLabel = tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardNext');\n\n return (\n <WizardLayoutContext.Provider value={wizardContextValue}>\n <div className={className} data-guidance-wizard=\"\">\n <div ref={wizardTopRef}>\n <Stepper\n currentStep={currentStep}\n totalSteps={totalSteps}\n orientation={DisplayDirection.HORIZONTAL}\n className=\"mb-region\"\n >\n {wizardSteps.map((step, index) => (\n <React.Fragment key={step.name}>\n <StepperItem step={index}>\n <StepperIndicator step={index} />\n <div className=\"flex flex-col items-center text-center\">\n <StepperTitle step={index}>\n <span id={`wizard-tab-${step.name}`}>\n {getStepLabel(step.name, index)}\n </span>\n </StepperTitle>\n </div>\n </StepperItem>\n {index < totalSteps - 1 && <StepperSeparator step={index} />}\n </React.Fragment>\n ))}\n </Stepper>\n </div>\n\n {wizardSteps.map((step, index) => (\n <div\n key={step.name}\n style={{ display: index === currentStep ? undefined : 'none' }}\n aria-hidden={index !== currentStep}\n >\n <ErrorBoundary>\n {step.element}\n </ErrorBoundary>\n </div>\n ))}\n\n {hostActions?.submissionNotice}\n <div className=\"flex justify-between gap-field pt-field\">\n <Button\n type=\"button\"\n variant={ButtonVariants_Variant.OUTLINE}\n onClick={handlePrevious}\n disabled={isFirstStep || templateCtx?.disabled}\n >\n {previousLabel}\n </Button>\n\n <div className=\"flex flex-wrap items-center justify-end gap-element\">\n {hostActions?.cancelButton}\n {hostActions?.draftSaveButton}\n {isLastStep ? (\n submitButton ?? hostActions?.submitButton ?? (\n <Button type=\"submit\" disabled={templateCtx?.disabled}>\n {tComponent(FrontendComponentType.LOW_LEVEL_FORM_MESSAGE, 'wizardSubmit')}\n </Button>\n )\n ) : (\n <Button\n type=\"button\"\n onClick={handleNext}\n disabled={templateCtx?.disabled}\n >\n {nextLabel}\n </Button>\n )}\n </div>\n </div>\n </div>\n </WizardLayoutContext.Provider>\n );\n}\n\n/**\n * Scroll to the first field with a validation error.\n * Uses `data-field` or `name` attributes to locate the DOM element.\n */\nfunction scrollToFirstError(\n form: ReturnType<typeof useFormContext>,\n fieldNames?: string[],\n): void {\n const errors = form.formState.errors;\n let firstErrorField: string | null = null;\n\n if (fieldNames?.length) {\n for (const fieldName of fieldNames) {\n const parts = fieldName.split('.');\n let errorObj: unknown = errors;\n for (const part of parts) {\n if (errorObj && typeof errorObj === 'object' && part in errorObj) {\n errorObj = (errorObj as Record<string, unknown>)[part];\n } else {\n errorObj = undefined;\n break;\n }\n }\n if (errorObj) {\n firstErrorField = fieldName;\n break;\n }\n }\n }\n\n if (!firstErrorField) return;\n\n // Shared scroll+focus mechanics (see scroll-to-first-error.utils, audit D4) —\n // this wizard keeps its own STEP-SCOPED first-error selection above, but the\n // DOM lookup / scroll / focus behavior is the same contract the whole-form\n // submit path uses.\n scrollAndFocusFirstErroredField([firstErrorField]);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"WizardStep.d.ts","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAKjG,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,SAAS,CAiDpF"}
1
+ {"version":3,"file":"WizardStep.d.ts","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAEA,OAAc,EAAqD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAMjG,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,GAAG,SAAS,CAsDpF"}
@@ -3,6 +3,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
4
4
  import { WizardStepFieldsContext } from './WizardStepFieldsContext.js';
5
5
  import { useWizardLayoutContext } from './WizardLayoutContext.js';
6
+ import { cn } from '../../../core/ui/cn.js';
6
7
  /**
7
8
  * Single wizard step within a `<WizardLayout>`.
8
9
  *
@@ -50,6 +51,6 @@ export function WizardStep({ name, className, children }) {
50
51
  }
51
52
  }, [wizardCtx, name, fields]);
52
53
  const stepId = `wizard-step-${name}`;
53
- return (_jsx(WizardStepFieldsContext.Provider, { value: fieldsContextValue, children: _jsx("div", { className: className, id: stepId, "data-guidance-wizard-step": name, role: "tabpanel", "aria-labelledby": `wizard-tab-${name}`, children: children }) }));
54
+ return (_jsx(WizardStepFieldsContext.Provider, { value: fieldsContextValue, children: _jsx("div", { className: cn('flex flex-col gap-field', className), id: stepId, "data-guidance-wizard-step": name, role: "tabpanel", "aria-labelledby": `wizard-tab-${name}`, children: children }) }));
54
55
  }
55
56
  //# sourceMappingURL=WizardStep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WizardStep.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAgB/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAmB;IACvE,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,EAC1C,CAAC,aAAa,EAAE,eAAe,CAAC,CACjC,CAAC;IAEF;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACxC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;gBACvC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,eAAe,IAAI,EAAE,CAAC;IAErC,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,kBAAkB,YACzD,cACE,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,MAAM,+BACiB,IAAI,EAC/B,IAAI,EAAC,UAAU,qBACE,cAAc,IAAI,EAAE,YAEpC,QAAQ,GACL,GAC2B,CACpC,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport type { WizardStepFieldsContextValue } from './WizardStepFieldsContext';\nimport { WizardStepFieldsContext } from './WizardStepFieldsContext';\nimport { useWizardLayoutContext } from './WizardLayoutContext';\n\nexport interface WizardStepProps {\n /**\n * Structural ref — maps to i18n keys for title/description:\n * - `resources.{type}.wizardSteps.{name}.title`\n * - `resources.{type}.wizardSteps.{name}.description`\n *\n * Must match an entry in `layout.refs.wizardSteps`.\n */\n name: string;\n /** Additional CSS classes for the step container. */\n className?: string;\n children: ReactNode;\n}\n\n/**\n * Single wizard step within a `<WizardLayout>`.\n *\n * Provides a `WizardStepFieldsContext` so child `<FormField>` components\n * auto-register their names. On mount, reports its collected fields to the\n * parent `WizardLayout` via `WizardLayoutContext.registerStep` — this\n * enables per-step validation (the wizard only triggers fields belonging\n * to the active step).\n *\n * Step title is resolved from i18n by `name`. The wizard hides inactive\n * steps with `display: none` so that RHF keeps all fields mounted.\n *\n * @example\n * ```tsx\n * <WizardStep name=\"contact-info\">\n * <FormField name=\"email\" />\n * <FormField name=\"phone\" />\n * </WizardStep>\n * ```\n */\nexport function WizardStep({ name, className, children }: WizardStepProps): ReactNode {\n const [fields] = useState<Set<string>>(() => new Set());\n const wizardCtx = useWizardLayoutContext();\n const registeredRef = useRef(false);\n\n const registerField = useCallback((fieldName: string) => {\n fields.add(fieldName);\n wizardCtx?.registerStep(name, fields);\n }, [fields, name, wizardCtx]);\n\n const unregisterField = useCallback((fieldName: string) => {\n fields.delete(fieldName);\n wizardCtx?.registerStep(name, fields);\n }, [fields, name, wizardCtx]);\n\n const fieldsContextValue = useMemo<WizardStepFieldsContextValue>(\n () => ({ registerField, unregisterField }),\n [registerField, unregisterField],\n );\n\n /**\n * After initial render, report our field set to the parent WizardLayout.\n * Registration is by name — WizardLayout resolves the index from children order.\n */\n useEffect(() => {\n if (wizardCtx && !registeredRef.current) {\n registeredRef.current = true;\n const frame = requestAnimationFrame(() => {\n wizardCtx.registerStep(name, fields);\n });\n return () => cancelAnimationFrame(frame);\n }\n }, [wizardCtx, name, fields]);\n\n const stepId = `wizard-step-${name}`;\n\n return (\n <WizardStepFieldsContext.Provider value={fieldsContextValue}>\n <div\n className={className}\n id={stepId}\n data-guidance-wizard-step={name}\n role=\"tabpanel\"\n aria-labelledby={`wizard-tab-${name}`}\n >\n {children}\n </div>\n </WizardStepFieldsContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"file":"WizardStep.js","sourceRoot":"","sources":["../../../../../../src/components/resources/skeleton/WizardStep.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AAEjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAgBpD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAmB;IACvE,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAc,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;IAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEpC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QACtD,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACtB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,SAAiB,EAAE,EAAE;QACxD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,SAAS,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9B,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC,EAC1C,CAAC,aAAa,EAAE,eAAe,CAAC,CACjC,CAAC;IAEF;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YACxC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC7B,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE;gBACvC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9B,MAAM,MAAM,GAAG,eAAe,IAAI,EAAE,CAAC;IAErC,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,kBAAkB,YAMzD,cACE,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,EACnD,EAAE,EAAE,MAAM,+BACiB,IAAI,EAC/B,IAAI,EAAC,UAAU,qBACE,cAAc,IAAI,EAAE,YAEpC,QAAQ,GACL,GAC2B,CACpC,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport type { WizardStepFieldsContextValue } from './WizardStepFieldsContext';\nimport { WizardStepFieldsContext } from './WizardStepFieldsContext';\nimport { useWizardLayoutContext } from './WizardLayoutContext';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\n\nexport interface WizardStepProps {\n /**\n * Structural ref — maps to i18n keys for title/description:\n * - `resources.{type}.wizardSteps.{name}.title`\n * - `resources.{type}.wizardSteps.{name}.description`\n *\n * Must match an entry in `layout.refs.wizardSteps`.\n */\n name: string;\n /** Additional CSS classes for the step container. */\n className?: string;\n children: ReactNode;\n}\n\n/**\n * Single wizard step within a `<WizardLayout>`.\n *\n * Provides a `WizardStepFieldsContext` so child `<FormField>` components\n * auto-register their names. On mount, reports its collected fields to the\n * parent `WizardLayout` via `WizardLayoutContext.registerStep` — this\n * enables per-step validation (the wizard only triggers fields belonging\n * to the active step).\n *\n * Step title is resolved from i18n by `name`. The wizard hides inactive\n * steps with `display: none` so that RHF keeps all fields mounted.\n *\n * @example\n * ```tsx\n * <WizardStep name=\"contact-info\">\n * <FormField name=\"email\" />\n * <FormField name=\"phone\" />\n * </WizardStep>\n * ```\n */\nexport function WizardStep({ name, className, children }: WizardStepProps): ReactNode {\n const [fields] = useState<Set<string>>(() => new Set());\n const wizardCtx = useWizardLayoutContext();\n const registeredRef = useRef(false);\n\n const registerField = useCallback((fieldName: string) => {\n fields.add(fieldName);\n wizardCtx?.registerStep(name, fields);\n }, [fields, name, wizardCtx]);\n\n const unregisterField = useCallback((fieldName: string) => {\n fields.delete(fieldName);\n wizardCtx?.registerStep(name, fields);\n }, [fields, name, wizardCtx]);\n\n const fieldsContextValue = useMemo<WizardStepFieldsContextValue>(\n () => ({ registerField, unregisterField }),\n [registerField, unregisterField],\n );\n\n /**\n * After initial render, report our field set to the parent WizardLayout.\n * Registration is by name — WizardLayout resolves the index from children order.\n */\n useEffect(() => {\n if (wizardCtx && !registeredRef.current) {\n registeredRef.current = true;\n const frame = requestAnimationFrame(() => {\n wizardCtx.registerStep(name, fields);\n });\n return () => cancelAnimationFrame(frame);\n }\n }, [wizardCtx, name, fields]);\n\n const stepId = `wizard-step-${name}`;\n\n return (\n <WizardStepFieldsContext.Provider value={fieldsContextValue}>\n {/*\n * A column with the field gap: `FormLayout` spaces its DIRECT children, and a wizard's fields are one level\n * down, inside this step — so they sat flush, a label touching the input above it (measured on Wonder Todos'\n * announcement dialog, Title over Message).\n */}\n <div\n className={cn('flex flex-col gap-field', className)}\n id={stepId}\n data-guidance-wizard-step={name}\n role=\"tabpanel\"\n aria-labelledby={`wizard-tab-${name}`}\n >\n {children}\n </div>\n </WizardStepFieldsContext.Provider>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceFieldDisplayPreset_ResourceReference_Default.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAqBjF,OAAO,KAAK,EAAE,yDAAyD,EAAE,MAAM,2GAA2G,CAAC;AAuC3L,eAAO,MAAM,oDAAoD,GAAI,gIASlE,yDAAyD,KAAG,KAAK,CAAC,GAAG,CAAC,OA4pBxE,CAAC"}
1
+ {"version":3,"file":"ResourceFieldDisplayPreset_ResourceReference_Default.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAA4D,MAAM,OAAO,CAAC;AAsBjF,OAAO,KAAK,EAAE,yDAAyD,EAAE,MAAM,2GAA2G,CAAC;AAwD3L,eAAO,MAAM,oDAAoD,GAAI,gIASlE,yDAAyD,KAAG,KAAK,CAAC,GAAG,CAAC,OAyrBxE,CAAC"}
@@ -13,11 +13,12 @@ import React, { useEffect, useState, useCallback, useMemo, useRef } from 'react'
13
13
  import { Link } from 'react-router-dom';
14
14
  import { Skeleton } from '../../../../components/feedback/skeleton.js';
15
15
  import { Badge } from '../../../../components/data-display/badge.js';
16
+ import { Text } from '../../../../components/typography/text.js';
16
17
  import { useEventBus } from '../../../../core/events/useEventBus.js';
17
18
  import { FrontendEvents } from '../../../../core/events/events.frontend.schemas.js';
18
19
  import { useResourceRegistry } from '../../../../core/resources/useResourceRegistry.js';
19
20
  import { DEFAULT_FOREIGN_KEY_DISPLAY_MODE, ForeignKeyDisplayMode, getForeignKeyParams } from '@wildo-ai/zod-decorators';
20
- import { FrontendComponentType } from '@wildo-ai/presets-components-models';
21
+ import { FrontendComponentType, TextVariant } from '@wildo-ai/presets-components-models';
21
22
  import { useI18n } from '../../../../core/i18n/useI18n.js';
22
23
  import { cn } from '../../../../core/ui/cn.js';
23
24
  import { FrontendResourceUtils, frontendResourceUtils } from '../../../../core/resources/frontend-resource.utils.js';
@@ -42,6 +43,22 @@ function resolvePrePopulatedRecordIdentifier(params) {
42
43
  // =============================================================================
43
44
  // COMPONENT IMPLEMENTATION
44
45
  // =============================================================================
46
+ /**
47
+ * A reference's resolved LABEL, set in the body text recipe.
48
+ *
49
+ * It was a bare `<span>`, which takes its size from whatever encloses the value: every other display
50
+ * value is a `Text` (the string formatter's own output), so a reference printed at the page's root
51
+ * size while the facts around it printed at the body size — measured on the workbench's Build plan
52
+ * and Roadmap pages, where each linked requirement read a size larger than the text it sat among.
53
+ * `as="span"` because the label sits inside a link or a button, where a block `<p>` is not allowed.
54
+ *
55
+ * `TextVariant.INHERIT` because the COLOUR is the wrapper's: the link or button around the label
56
+ * carries `text-primary`, and the default variant would paint the label in the foreground colour —
57
+ * every linkable reference in every application would stop looking like a link.
58
+ */
59
+ function ReferenceLabel({ label }) {
60
+ return _jsx(Text, { as: "span", variant: TextVariant.INHERIT, children: label });
61
+ }
45
62
  export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName, value, resourceType: resourceTypeProp, data: prePopulatedData, displayParams, labelFallback, schema, className, }) => {
46
63
  const { registry, doOperation } = useResourceRegistry();
47
64
  const { emit } = useEventBus();
@@ -57,7 +74,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
57
74
  const resourceType = resourceTypeProp
58
75
  || declaredReferencedType
59
76
  || FrontendResourceUtils.resolveResourceTypeForForeignKey(fieldName, schema, registry);
60
- const { t, isReady } = useI18n({ component: FrontendComponentType.RESOURCES_FIELDS_RESOURCE_REFERENCE, resource: resourceType });
77
+ const { t, formatDate, formatDateTime, isReady } = useI18n({ component: FrontendComponentType.RESOURCES_FIELDS_RESOURCE_REFERENCE, resource: resourceType });
61
78
  const toUserFacingErrorMessage = useUserFacingErrorMessage();
62
79
  // Resolve contextual parameters for scoped FK READ calls.
63
80
  // Display path: AutomaticDisplayer already built contextualParameters from contextResourceIdentifiers.
@@ -162,8 +179,10 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
162
179
  registry,
163
180
  currentObject: prePopulatedData,
164
181
  t,
182
+ formatDate,
183
+ formatDateTime,
165
184
  });
166
- }, [prePopulatedData, resourceType, value, registry, t]);
185
+ }, [prePopulatedData, resourceType, value, registry, t, formatDate, formatDateTime]);
167
186
  // ── B1 (P4-03): FK link URL infrastructure ───────────────────────────
168
187
  // Memoize route path selection for the referenced resource type when linkable.
169
188
  const fkLinkUrlInfo = useMemo(() => {
@@ -311,6 +330,8 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
311
330
  doOperation,
312
331
  contextualParameters: scopedContextualParameters,
313
332
  t,
333
+ formatDate,
334
+ formatDateTime,
314
335
  });
315
336
  trackResolvedFK(id, { id, label, data: fetchedRecord, error: null, isLoading: false });
316
337
  }
@@ -319,7 +340,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
319
340
  // backend's i18n REFERENCE (#1160).
320
341
  trackResolvedFK(id, { id, label: null, error: toUserFacingErrorMessage(err), isLoading: false });
321
342
  }
322
- }, [resourceType, registry, doOperation, trackResolvedFK, t, scopedContextualParameters, fkLinkUrlInfo, toUserFacingErrorMessage]);
343
+ }, [resourceType, registry, doOperation, trackResolvedFK, t, formatDate, formatDateTime, scopedContextualParameters, fkLinkUrlInfo, toUserFacingErrorMessage]);
323
344
  // Resolve all FK values on mount/change — skip API when pre-populated data is available
324
345
  useEffect(() => {
325
346
  if (!resourceType || values.length === 0)
@@ -495,7 +516,21 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
495
516
  // The id is the LAST resort, not the first. A record carrying a readable copy of the reference
496
517
  // (`labelFallbackField`) shows that instead — which is what keeps a member directory readable
497
518
  // for people who have no profile for a label to be built from.
498
- const label = resolved.label || labelFallback || id;
519
+ /*
520
+ * Named from the fetched record with the CURRENT `t`, not the label frozen at fetch time (#1851 review). A
521
+ * record whose name reads another label section (a product named by `billing_products.<key>.name`) could be
522
+ * fetched before those words arrived, and the stored label then kept its key for the life of the component.
523
+ * The stored label is used only when there is no stored record (`data`) or the resource declares no label
524
+ * strategy: such a name cannot change with the words, and the resolver would log its configuration gap on every
525
+ * render. A strategy that returns an empty name for some record also logs on each render; accepted, since
526
+ * that is a labelling defect in the strategy and the log names it.
527
+ */
528
+ const hasLabelStrategy = !!resourceType
529
+ && !!registry.resourceConfigurations?.[resourceType]?.frontendConfiguration?.getFrontendResourceLabel;
530
+ const currentLabel = resolved.data && resourceType && hasLabelStrategy
531
+ ? FrontendResourceUtils.computeFrontendResourceLabel({ resourceType, registry, currentObject: resolved.data, t, formatDate, formatDateTime })
532
+ : null;
533
+ const label = currentLabel || resolved.label || labelFallback || id;
499
534
  if (effectiveDisplayMode === ParentDisplay.BADGE) {
500
535
  const handleBadgeClick = isLinkable && parentRefConfig?.onNavigateToParent
501
536
  ? () => parentRefConfig.onNavigateToParent(id)
@@ -519,19 +554,25 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
519
554
  const refConfig = registry.resourceConfigurations[resourceType];
520
555
  const summarySchema = refConfig?.mainSchema;
521
556
  if (summarySchema) {
522
- const summaryContent = (_jsx(ResourceSummaryDisplayer, { resourceType: resourceType, schema: summarySchema, data: resolved.data }));
557
+ const summaryContent = (_jsx(ResourceSummaryDisplayer, { resourceType: resourceType, schema: summarySchema, data: resolved.data,
558
+ // The referenced record's NAME. The field's own label names the FIELD ("Target todo"),
559
+ // never the record, and this card REPLACES the one-line label — so without it nothing on
560
+ // screen says which record is referenced. Measured on Wonder Todos: a relationship row
561
+ // read "Blocks → Pending –", the blocked todo's badges with no title. The edit picker
562
+ // passes its option label for the same reason.
563
+ primaryLabel: label }));
523
564
  return isLinkable ? wrapWithLink(id, summaryContent) : summaryContent;
524
565
  }
525
566
  }
526
- return wrapWithLink(id, _jsx("span", { children: label }));
567
+ return wrapWithLink(id, _jsx(ReferenceLabel, { label: label }));
527
568
  }
528
569
  // ForeignKeyDisplayMode.LABEL — resolved label, optionally linkable
529
570
  if (effectiveDisplayMode === ForeignKeyDisplayMode.LABEL) {
530
- return wrapWithLink(id, _jsx("span", { children: label }));
571
+ return wrapWithLink(id, _jsx(ReferenceLabel, { label: label }));
531
572
  }
532
573
  // Fallback — render as label
533
- return wrapWithLink(id, _jsx("span", { children: label }));
534
- }, [effectiveDisplayMode, resolvedFKs, resourceType, isParentReference, parentRefConfig, wrapWithLink, registry, isLinkable]);
574
+ return wrapWithLink(id, _jsx(ReferenceLabel, { label: label }));
575
+ }, [effectiveDisplayMode, resolvedFKs, resourceType, isParentReference, parentRefConfig, wrapWithLink, registry, isLinkable, t, formatDate, formatDateTime, labelFallback]);
535
576
  // Handle empty values
536
577
  if (values.length === 0) {
537
578
  return _jsx("span", { className: "text-muted-foreground", children: "-" });
@@ -542,7 +583,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
542
583
  // Unknown resource type warning
543
584
  if (!resourceType && effectiveDisplayMode !== ForeignKeyDisplayMode.ID) {
544
585
  // Fall back to showing IDs with a warning
545
- return (_jsx("div", { className: className, title: "Unknown resource type - showing IDs", children: values.length === 1 ? (_jsx("span", { className: "font-mono text-sm", children: values[0] })) : (_jsx("ul", { className: "list-disc ms-4 space-y-item-xs", children: values.map(id => (_jsx("li", { className: "font-mono text-sm", children: id }, id))) })) }));
586
+ return (_jsx("div", { className: className, title: "Unknown resource type - showing IDs", children: values.length === 1 ? (_jsx("span", { className: "font-mono text-sm", children: values[0] })) : (_jsx("ul", { className: "list-disc ps-4 space-y-item-xs", children: values.map(id => (_jsx("li", { className: "font-mono text-sm", children: id }, id))) })) }));
546
587
  }
547
588
  // Single value
548
589
  if (values.length === 1) {
@@ -550,7 +591,7 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
550
591
  }
551
592
  // Multiple values - render as list
552
593
  /*
553
- * `list-outside` (the default) with a margin, NOT `list-inside`.
594
+ * `list-outside` (the default) with a start PADDING, NOT `list-inside`.
554
595
  *
555
596
  * `list-inside` puts the marker into the item's INLINE FLOW, where it has to share the first line
556
597
  * with the item's content — and the content here is a reference button, which is `inline-block`. An
@@ -561,9 +602,14 @@ export const ResourceFieldDisplayPreset_ResourceReference_Default = ({ fieldName
561
602
  * value — the single-value branch above renders no list at all, and a short label happened to fit.
562
603
  *
563
604
  * Outside markers sit in the margin and take no part in the inline flow, so the content may wrap
564
- * freely and the marker stays on the first line. `ms-4` matches the marker inset the array
565
- * renderer already uses for its own bulleted lists.
605
+ * freely and the marker stays on the first line.
606
+ *
607
+ * PADDING rather than the `ms-4` margin this used until 2026-09-25, because the list is the value's
608
+ * ROOT and a vertical field chrome stretches its children to `w-full`: a margin then pushes a
609
+ * full-width box 1rem past its column, measured on the workbench's Build plan page where every
610
+ * "Serves functional requirements" link ran to the pane's edge. An outside marker is drawn in the
611
+ * list's padding box, so `ps-4` keeps the same inset inside the width instead of beyond it.
566
612
  */
567
- return (_jsx("ul", { className: cn('list-disc ms-4 space-y-item-xs', className), children: values.map(id => (_jsx("li", { children: renderValue(id) }, id))) }));
613
+ return (_jsx("ul", { className: cn('list-disc ps-4 space-y-item-xs', className), children: values.map(id => (_jsx("li", { children: renderValue(id) }, id))) }));
568
614
  };
569
615
  //# sourceMappingURL=ResourceFieldDisplayPreset_ResourceReference_Default.js.map