@wildo-ai/saas-frontend-lib 1.1.9 → 1.1.11

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 (1566) hide show
  1. package/dist/esm/companion-exports.d.ts +2 -1
  2. package/dist/esm/companion-exports.d.ts.map +1 -1
  3. package/dist/esm/companion-exports.js +2 -1
  4. package/dist/esm/companion-exports.js.map +1 -1
  5. package/dist/esm/components/actions/action-bar.d.ts +45 -1
  6. package/dist/esm/components/actions/action-bar.d.ts.map +1 -1
  7. package/dist/esm/components/actions/action-bar.js +84 -0
  8. package/dist/esm/components/actions/action-bar.js.map +1 -1
  9. package/dist/esm/components/actions/button.d.ts +22 -0
  10. package/dist/esm/components/actions/button.d.ts.map +1 -1
  11. package/dist/esm/components/actions/button.js +45 -0
  12. package/dist/esm/components/actions/button.js.map +1 -1
  13. package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts +109 -0
  14. package/dist/esm/components/ai-elements/chat/conversation-thread.d.ts.map +1 -0
  15. package/dist/esm/components/ai-elements/chat/conversation-thread.js +22 -0
  16. package/dist/esm/components/ai-elements/chat/conversation-thread.js.map +1 -0
  17. package/dist/esm/components/ai-elements/decision/approval.d.ts +103 -7
  18. package/dist/esm/components/ai-elements/decision/approval.d.ts.map +1 -1
  19. package/dist/esm/components/ai-elements/decision/approval.js.map +1 -1
  20. package/dist/esm/components/ai-elements/execution/tool.d.ts +6 -0
  21. package/dist/esm/components/ai-elements/execution/tool.d.ts.map +1 -1
  22. package/dist/esm/components/ai-elements/execution/tool.js.map +1 -1
  23. package/dist/esm/components/ai-elements/graph/canvas.d.ts +60 -1
  24. package/dist/esm/components/ai-elements/graph/canvas.d.ts.map +1 -1
  25. package/dist/esm/components/ai-elements/graph/canvas.js +26 -0
  26. package/dist/esm/components/ai-elements/graph/canvas.js.map +1 -1
  27. package/dist/esm/components/ai-elements/graph/node.d.ts +39 -4
  28. package/dist/esm/components/ai-elements/graph/node.d.ts.map +1 -1
  29. package/dist/esm/components/ai-elements/graph/node.js +18 -0
  30. package/dist/esm/components/ai-elements/graph/node.js.map +1 -1
  31. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts +6 -0
  32. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.d.ts.map +1 -1
  33. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js +29 -8
  34. package/dist/esm/components/app/AppLayout_AuthenticatedRoute.js.map +1 -1
  35. package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts +17 -0
  36. package/dist/esm/components/app/AppLayout_DecisionInbox.d.ts.map +1 -0
  37. package/dist/esm/components/app/AppLayout_DecisionInbox.js +24 -0
  38. package/dist/esm/components/app/AppLayout_DecisionInbox.js.map +1 -0
  39. package/dist/esm/components/app/AppLayout_MainContainer.d.ts.map +1 -1
  40. package/dist/esm/components/app/AppLayout_MainContainer.js +3 -0
  41. package/dist/esm/components/app/AppLayout_MainContainer.js.map +1 -1
  42. package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts +18 -0
  43. package/dist/esm/components/app/PublicLayout_LegalNotice.d.ts.map +1 -0
  44. package/dist/esm/components/app/PublicLayout_LegalNotice.js +8 -0
  45. package/dist/esm/components/app/PublicLayout_LegalNotice.js.map +1 -0
  46. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts +3 -0
  47. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.d.ts.map +1 -0
  48. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js +38 -0
  49. package/dist/esm/components/app/PublicLayout_LegalNotice.labels.js.map +1 -0
  50. package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts +15 -0
  51. package/dist/esm/components/auth/Auth_ChatIdentityLink.d.ts.map +1 -0
  52. package/dist/esm/components/auth/Auth_ChatIdentityLink.js +219 -0
  53. package/dist/esm/components/auth/Auth_ChatIdentityLink.js.map +1 -0
  54. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts +3 -0
  55. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.d.ts.map +1 -0
  56. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js +49 -0
  57. package/dist/esm/components/auth/Auth_ChatIdentityLink.labels.js.map +1 -0
  58. package/dist/esm/components/auth/Auth_Invitation.d.ts.map +1 -1
  59. package/dist/esm/components/auth/Auth_Invitation.js +3 -2
  60. package/dist/esm/components/auth/Auth_Invitation.js.map +1 -1
  61. package/dist/esm/components/auth/Auth_Invitation.labels.js +2 -2
  62. package/dist/esm/components/auth/Auth_Invitation.labels.js.map +1 -1
  63. package/dist/esm/components/auth/Auth_Main.d.ts.map +1 -1
  64. package/dist/esm/components/auth/Auth_Main.js +40 -7
  65. package/dist/esm/components/auth/Auth_Main.js.map +1 -1
  66. package/dist/esm/components/auth/Auth_Main.labels.d.ts.map +1 -1
  67. package/dist/esm/components/auth/Auth_Main.labels.js +9 -0
  68. package/dist/esm/components/auth/Auth_Main.labels.js.map +1 -1
  69. package/dist/esm/components/auth/Auth_OAuthConsent.d.ts.map +1 -1
  70. package/dist/esm/components/auth/Auth_OAuthConsent.js +3 -2
  71. package/dist/esm/components/auth/Auth_OAuthConsent.js.map +1 -1
  72. package/dist/esm/components/auth/Auth_PasswordLost.labels.js +2 -2
  73. package/dist/esm/components/auth/Auth_PasswordLost.labels.js.map +1 -1
  74. package/dist/esm/components/auth/Auth_Register.d.ts.map +1 -1
  75. package/dist/esm/components/auth/Auth_Register.js +8 -1
  76. package/dist/esm/components/auth/Auth_Register.js.map +1 -1
  77. package/dist/esm/components/auth/Auth_Register.labels.js +2 -2
  78. package/dist/esm/components/auth/Auth_Register.labels.js.map +1 -1
  79. package/dist/esm/components/auth/StepUpAuthDialog.d.ts +1 -1
  80. package/dist/esm/components/auth/StepUpAuthDialog.js +3 -3
  81. package/dist/esm/components/auth/StepUpAuthDialog.js.map +1 -1
  82. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.d.ts.map +1 -1
  83. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js +94 -6
  84. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.js.map +1 -1
  85. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.d.ts.map +1 -1
  86. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js +21 -1
  87. package/dist/esm/components/auth/admin-config/AppPage_SecuritySettings.labels.js.map +1 -1
  88. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.d.ts.map +1 -1
  89. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js +16 -13
  90. package/dist/esm/components/auth/admin-config/ResourceLayoutPreset_Create_SamlWizard.js.map +1 -1
  91. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js +3 -3
  92. package/dist/esm/components/auth/admin-config/SsoConnectionSamlReadSection.js.map +1 -1
  93. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.d.ts.map +1 -1
  94. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js +1 -1
  95. package/dist/esm/components/auth/enrollment/PasskeyEnrollmentMethod.js.map +1 -1
  96. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts +1 -1
  97. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.d.ts.map +1 -1
  98. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js +3 -4
  99. package/dist/esm/components/auth/methods/OrgSamlAuthMethod.js.map +1 -1
  100. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts +11 -0
  101. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.d.ts.map +1 -0
  102. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js +25 -0
  103. package/dist/esm/components/auth/pages/AuthPage_ChatIdentityLink.js.map +1 -0
  104. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts +39 -0
  105. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.d.ts.map +1 -0
  106. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js +45 -0
  107. package/dist/esm/components/auth/utils/AuthPrivacyNoticeLink.js.map +1 -0
  108. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js +1 -1
  109. package/dist/esm/components/auth/utils/PasswordStrengthIndicator.js.map +1 -1
  110. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.d.ts.map +1 -1
  111. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js +2 -1
  112. package/dist/esm/components/compliance/GovernedDocumentAcceptanceControl.js.map +1 -1
  113. package/dist/esm/components/data-display/AutomaticDisplayer.d.ts.map +1 -1
  114. package/dist/esm/components/data-display/AutomaticDisplayer.js +21 -35
  115. package/dist/esm/components/data-display/AutomaticDisplayer.js.map +1 -1
  116. package/dist/esm/components/data-display/DisplayField.d.ts.map +1 -1
  117. package/dist/esm/components/data-display/DisplayField.js +98 -70
  118. package/dist/esm/components/data-display/DisplayField.js.map +1 -1
  119. package/dist/esm/components/data-display/DisplayFieldEditable.d.ts.map +1 -1
  120. package/dist/esm/components/data-display/DisplayFieldEditable.js +48 -8
  121. package/dist/esm/components/data-display/DisplayFieldEditable.js.map +1 -1
  122. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts +3 -1
  123. package/dist/esm/components/data-display/DisplayFieldEditableArray.d.ts.map +1 -1
  124. package/dist/esm/components/data-display/DisplayFieldEditableArray.js +30 -4
  125. package/dist/esm/components/data-display/DisplayFieldEditableArray.js.map +1 -1
  126. package/dist/esm/components/data-display/DisplayFieldReadOnly.d.ts.map +1 -1
  127. package/dist/esm/components/data-display/DisplayFieldReadOnly.js +2 -2
  128. package/dist/esm/components/data-display/DisplayFieldReadOnly.js.map +1 -1
  129. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts +1 -1
  130. package/dist/esm/components/data-display/DisplayValueDispatcher.d.ts.map +1 -1
  131. package/dist/esm/components/data-display/DisplayValueDispatcher.js +45 -94
  132. package/dist/esm/components/data-display/DisplayValueDispatcher.js.map +1 -1
  133. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.d.ts.map +1 -1
  134. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js +14 -8
  135. package/dist/esm/components/data-display/ResourceAutomaticDisplayer.js.map +1 -1
  136. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts +41 -3
  137. package/dist/esm/components/data-display/ResourceSummaryDisplayer.d.ts.map +1 -1
  138. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js +49 -5
  139. package/dist/esm/components/data-display/ResourceSummaryDisplayer.js.map +1 -1
  140. package/dist/esm/components/data-display/SummaryContext.d.ts +2 -2
  141. package/dist/esm/components/data-display/SummaryContext.js.map +1 -1
  142. package/dist/esm/components/data-display/automatic-displayer.utils.d.ts +22 -1
  143. package/dist/esm/components/data-display/automatic-displayer.utils.d.ts.map +1 -1
  144. package/dist/esm/components/data-display/automatic-displayer.utils.js +29 -0
  145. package/dist/esm/components/data-display/automatic-displayer.utils.js.map +1 -1
  146. package/dist/esm/components/data-display/badge.d.ts +9 -0
  147. package/dist/esm/components/data-display/badge.d.ts.map +1 -1
  148. package/dist/esm/components/data-display/badge.js.map +1 -1
  149. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts +14 -2
  150. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.d.ts.map +1 -1
  151. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js +42 -12
  152. package/dist/esm/components/data-display/chromes/DisplayFieldChrome.js.map +1 -1
  153. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts +10 -0
  154. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.d.ts.map +1 -0
  155. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js +18 -0
  156. package/dist/esm/components/data-display/chromes/display-chrome-mode-resolution.js.map +1 -0
  157. package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts +38 -0
  158. package/dist/esm/components/data-display/chromes/field-tile-boundaries.d.ts.map +1 -0
  159. package/dist/esm/components/data-display/chromes/field-tile-boundaries.js +30 -0
  160. package/dist/esm/components/data-display/chromes/field-tile-boundaries.js.map +1 -0
  161. package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts +22 -0
  162. package/dist/esm/components/data-display/chromes/field-tiles.utils.d.ts.map +1 -0
  163. package/dist/esm/components/data-display/chromes/field-tiles.utils.js +52 -0
  164. package/dist/esm/components/data-display/chromes/field-tiles.utils.js.map +1 -0
  165. package/dist/esm/components/data-display/display-field-resolved-props.d.ts +4 -0
  166. package/dist/esm/components/data-display/display-field-resolved-props.d.ts.map +1 -1
  167. package/dist/esm/components/data-display/display-field-resolved-props.js.map +1 -1
  168. package/dist/esm/components/data-display/display-layout-template.utils.d.ts +18 -0
  169. package/dist/esm/components/data-display/display-layout-template.utils.d.ts.map +1 -0
  170. package/dist/esm/components/data-display/display-layout-template.utils.js +18 -0
  171. package/dist/esm/components/data-display/display-layout-template.utils.js.map +1 -0
  172. package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts +44 -0
  173. package/dist/esm/components/data-display/display-value-emptiness.utils.d.ts.map +1 -0
  174. package/dist/esm/components/data-display/display-value-emptiness.utils.js +61 -0
  175. package/dist/esm/components/data-display/display-value-emptiness.utils.js.map +1 -0
  176. package/dist/esm/components/data-display/empty-value-mark.d.ts +31 -0
  177. package/dist/esm/components/data-display/empty-value-mark.d.ts.map +1 -0
  178. package/dist/esm/components/data-display/empty-value-mark.js +49 -0
  179. package/dist/esm/components/data-display/empty-value-mark.js.map +1 -0
  180. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts +3 -2
  181. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.d.ts.map +1 -1
  182. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js +4 -4
  183. package/dist/esm/components/data-display/external-data-provenance/DisplayFieldProvenanceNote.js.map +1 -1
  184. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts +6 -3
  185. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.d.ts.map +1 -1
  186. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js +22 -12
  187. package/dist/esm/components/data-display/external-data-provenance/external-data-provenance.frontend.js.map +1 -1
  188. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js +2 -2
  189. package/dist/esm/components/data-display/external-data-provenance/useExternalDataFieldProvenance.js.map +1 -1
  190. package/dist/esm/components/data-display/reference-display-target.d.ts +98 -0
  191. package/dist/esm/components/data-display/reference-display-target.d.ts.map +1 -0
  192. package/dist/esm/components/data-display/reference-display-target.js +154 -0
  193. package/dist/esm/components/data-display/reference-display-target.js.map +1 -0
  194. package/dist/esm/components/data-display/summary-value-naming.context.d.ts +15 -0
  195. package/dist/esm/components/data-display/summary-value-naming.context.d.ts.map +1 -0
  196. package/dist/esm/components/data-display/summary-value-naming.context.js +18 -0
  197. package/dist/esm/components/data-display/summary-value-naming.context.js.map +1 -0
  198. package/dist/esm/components/data-display/tone-marker.d.ts +38 -0
  199. package/dist/esm/components/data-display/tone-marker.d.ts.map +1 -0
  200. package/dist/esm/components/data-display/tone-marker.js +56 -0
  201. package/dist/esm/components/data-display/tone-marker.js.map +1 -0
  202. package/dist/esm/components/data-display/useFileActivation.d.ts.map +1 -1
  203. package/dist/esm/components/data-display/useFileActivation.js +2 -9
  204. package/dist/esm/components/data-display/useFileActivation.js.map +1 -1
  205. package/dist/esm/components/feedback/features/feature-limit-indicator.d.ts.map +1 -1
  206. package/dist/esm/components/feedback/features/feature-limit-indicator.js +12 -4
  207. package/dist/esm/components/feedback/features/feature-limit-indicator.js.map +1 -1
  208. package/dist/esm/components/feedback/operations-confirm-critical.d.ts +8 -0
  209. package/dist/esm/components/feedback/operations-confirm-critical.d.ts.map +1 -1
  210. package/dist/esm/components/feedback/operations-confirm-critical.js.map +1 -1
  211. package/dist/esm/components/files/Files_UploadGrantDrop.d.ts +0 -5
  212. package/dist/esm/components/files/Files_UploadGrantDrop.d.ts.map +1 -1
  213. package/dist/esm/components/files/Files_UploadGrantDrop.js +5 -17
  214. package/dist/esm/components/files/Files_UploadGrantDrop.js.map +1 -1
  215. package/dist/esm/components/flows-actors/actor.d.ts +21 -4
  216. package/dist/esm/components/flows-actors/actor.d.ts.map +1 -1
  217. package/dist/esm/components/flows-actors/actor.js +114 -192
  218. package/dist/esm/components/flows-actors/actor.js.map +1 -1
  219. package/dist/esm/components/flows-actors/actor.labels.d.ts.map +1 -1
  220. package/dist/esm/components/flows-actors/actor.labels.js +5 -10
  221. package/dist/esm/components/flows-actors/actor.labels.js.map +1 -1
  222. package/dist/esm/components/flows-actors/agent-config.labels.js +1 -1
  223. package/dist/esm/components/flows-actors/agent-config.labels.js.map +1 -1
  224. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.d.ts.map +1 -1
  225. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js +1 -0
  226. package/dist/esm/components/flows-actors/approval-modification-refusal.utils.js.map +1 -1
  227. package/dist/esm/components/flows-actors/approval.d.ts +26 -16
  228. package/dist/esm/components/flows-actors/approval.d.ts.map +1 -1
  229. package/dist/esm/components/flows-actors/approval.js +208 -70
  230. package/dist/esm/components/flows-actors/approval.js.map +1 -1
  231. package/dist/esm/components/flows-actors/approval.labels.d.ts.map +1 -1
  232. package/dist/esm/components/flows-actors/approval.labels.js +67 -22
  233. package/dist/esm/components/flows-actors/approval.labels.js.map +1 -1
  234. package/dist/esm/components/flows-actors/artifact-browser.labels.js +1 -1
  235. package/dist/esm/components/flows-actors/artifact-browser.labels.js.map +1 -1
  236. package/dist/esm/components/flows-actors/execution-plan.d.ts +19 -7
  237. package/dist/esm/components/flows-actors/execution-plan.d.ts.map +1 -1
  238. package/dist/esm/components/flows-actors/execution-plan.js +55 -41
  239. package/dist/esm/components/flows-actors/execution-plan.js.map +1 -1
  240. package/dist/esm/components/flows-actors/execution-plan.labels.d.ts.map +1 -1
  241. package/dist/esm/components/flows-actors/execution-plan.labels.js +25 -8
  242. package/dist/esm/components/flows-actors/execution-plan.labels.js.map +1 -1
  243. package/dist/esm/components/flows-actors/execution-usage.d.ts +69 -0
  244. package/dist/esm/components/flows-actors/execution-usage.d.ts.map +1 -0
  245. package/dist/esm/components/flows-actors/execution-usage.js +189 -0
  246. package/dist/esm/components/flows-actors/execution-usage.js.map +1 -0
  247. package/dist/esm/components/flows-actors/execution-usage.labels.d.ts +3 -0
  248. package/dist/esm/components/flows-actors/execution-usage.labels.d.ts.map +1 -0
  249. package/dist/esm/components/flows-actors/execution-usage.labels.js +27 -0
  250. package/dist/esm/components/flows-actors/execution-usage.labels.js.map +1 -0
  251. package/dist/esm/components/flows-actors/flow-execution.d.ts +23 -6
  252. package/dist/esm/components/flows-actors/flow-execution.d.ts.map +1 -1
  253. package/dist/esm/components/flows-actors/flow-execution.js +56 -208
  254. package/dist/esm/components/flows-actors/flow-execution.js.map +1 -1
  255. package/dist/esm/components/flows-actors/flow-execution.labels.d.ts.map +1 -1
  256. package/dist/esm/components/flows-actors/flow-execution.labels.js +3 -10
  257. package/dist/esm/components/flows-actors/flow-execution.labels.js.map +1 -1
  258. package/dist/esm/components/flows-actors/flow-node-badges.d.ts +54 -21
  259. package/dist/esm/components/flows-actors/flow-node-badges.d.ts.map +1 -1
  260. package/dist/esm/components/flows-actors/flow-node-badges.js +80 -6
  261. package/dist/esm/components/flows-actors/flow-node-badges.js.map +1 -1
  262. package/dist/esm/components/flows-actors/flow-node.labels.d.ts.map +1 -1
  263. package/dist/esm/components/flows-actors/flow-node.labels.js +0 -8
  264. package/dist/esm/components/flows-actors/flow-node.labels.js.map +1 -1
  265. package/dist/esm/components/flows-actors/flow-step-visuals.d.ts +31 -0
  266. package/dist/esm/components/flows-actors/flow-step-visuals.d.ts.map +1 -0
  267. package/dist/esm/components/flows-actors/flow-step-visuals.js +98 -0
  268. package/dist/esm/components/flows-actors/flow-step-visuals.js.map +1 -0
  269. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts +18 -19
  270. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.d.ts.map +1 -1
  271. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js +18 -19
  272. package/dist/esm/components/flows-actors/flows-actors-graph-runtime.js.map +1 -1
  273. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts +27 -42
  274. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.d.ts.map +1 -1
  275. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js +28 -43
  276. package/dist/esm/components/flows-actors/flows-actors-graph.lazy.js.map +1 -1
  277. package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts +15 -10
  278. package/dist/esm/components/flows-actors/flows-actors-ui.utils.d.ts.map +1 -1
  279. package/dist/esm/components/flows-actors/flows-actors-ui.utils.js +16 -42
  280. package/dist/esm/components/flows-actors/flows-actors-ui.utils.js.map +1 -1
  281. package/dist/esm/components/flows-actors/graph-viewer.d.ts +112 -0
  282. package/dist/esm/components/flows-actors/graph-viewer.d.ts.map +1 -0
  283. package/dist/esm/components/flows-actors/graph-viewer.js +431 -0
  284. package/dist/esm/components/flows-actors/graph-viewer.js.map +1 -0
  285. package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts +3 -0
  286. package/dist/esm/components/flows-actors/graph-viewer.labels.d.ts.map +1 -0
  287. package/dist/esm/components/flows-actors/graph-viewer.labels.js +67 -0
  288. package/dist/esm/components/flows-actors/graph-viewer.labels.js.map +1 -0
  289. package/dist/esm/components/flows-actors/graph-viewer.models.d.ts +16 -0
  290. package/dist/esm/components/flows-actors/graph-viewer.models.d.ts.map +1 -0
  291. package/dist/esm/components/flows-actors/graph-viewer.models.js +18 -0
  292. package/dist/esm/components/flows-actors/graph-viewer.models.js.map +1 -0
  293. package/dist/esm/components/flows-actors/human-decision-form.d.ts +57 -0
  294. package/dist/esm/components/flows-actors/human-decision-form.d.ts.map +1 -0
  295. package/dist/esm/components/flows-actors/human-decision-form.js +128 -0
  296. package/dist/esm/components/flows-actors/human-decision-form.js.map +1 -0
  297. package/dist/esm/components/flows-actors/system-catalog.d.ts +6 -1
  298. package/dist/esm/components/flows-actors/system-catalog.d.ts.map +1 -1
  299. package/dist/esm/components/flows-actors/system-catalog.js +22 -20
  300. package/dist/esm/components/flows-actors/system-catalog.js.map +1 -1
  301. package/dist/esm/components/flows-actors/system-catalog.labels.d.ts.map +1 -1
  302. package/dist/esm/components/flows-actors/system-catalog.labels.js +3 -2
  303. package/dist/esm/components/flows-actors/system-catalog.labels.js.map +1 -1
  304. package/dist/esm/components/flows-actors/task-detail.d.ts +17 -3
  305. package/dist/esm/components/flows-actors/task-detail.d.ts.map +1 -1
  306. package/dist/esm/components/flows-actors/task-detail.js +32 -25
  307. package/dist/esm/components/flows-actors/task-detail.js.map +1 -1
  308. package/dist/esm/components/flows-actors/task-memory.d.ts.map +1 -1
  309. package/dist/esm/components/flows-actors/task-memory.js +3 -2
  310. package/dist/esm/components/flows-actors/task-memory.js.map +1 -1
  311. package/dist/esm/components/form/Form.d.ts +2 -0
  312. package/dist/esm/components/form/Form.d.ts.map +1 -1
  313. package/dist/esm/components/form/Form.js +4 -0
  314. package/dist/esm/components/form/Form.js.map +1 -1
  315. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts +16 -1
  316. package/dist/esm/components/form/automated/AutomatedArrayField.d.ts.map +1 -1
  317. package/dist/esm/components/form/automated/AutomatedArrayField.js +101 -21
  318. package/dist/esm/components/form/automated/AutomatedArrayField.js.map +1 -1
  319. package/dist/esm/components/form/automated/AutomatedForm.d.ts +19 -2
  320. package/dist/esm/components/form/automated/AutomatedForm.d.ts.map +1 -1
  321. package/dist/esm/components/form/automated/AutomatedForm.js +40 -6
  322. package/dist/esm/components/form/automated/AutomatedForm.js.map +1 -1
  323. package/dist/esm/components/form/automated/AutosaveContext.d.ts +22 -1
  324. package/dist/esm/components/form/automated/AutosaveContext.d.ts.map +1 -1
  325. package/dist/esm/components/form/automated/AutosaveContext.js +53 -0
  326. package/dist/esm/components/form/automated/AutosaveContext.js.map +1 -1
  327. package/dist/esm/components/form/automated/FormField.d.ts +1 -1
  328. package/dist/esm/components/form/automated/FormField.d.ts.map +1 -1
  329. package/dist/esm/components/form/automated/FormField.js +127 -53
  330. package/dist/esm/components/form/automated/FormField.js.map +1 -1
  331. package/dist/esm/components/form/automated/FormFieldComposite.d.ts.map +1 -1
  332. package/dist/esm/components/form/automated/FormFieldComposite.js +12 -10
  333. package/dist/esm/components/form/automated/FormFieldComposite.js.map +1 -1
  334. package/dist/esm/components/form/automated/FormFieldRecord.d.ts.map +1 -1
  335. package/dist/esm/components/form/automated/FormFieldRecord.js +16 -7
  336. package/dist/esm/components/form/automated/FormFieldRecord.js.map +1 -1
  337. package/dist/esm/components/form/automated/FormTemplateContext.d.ts +27 -0
  338. package/dist/esm/components/form/automated/FormTemplateContext.d.ts.map +1 -1
  339. package/dist/esm/components/form/automated/FormTemplateContext.js +0 -48
  340. package/dist/esm/components/form/automated/FormTemplateContext.js.map +1 -1
  341. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts +4 -3
  342. package/dist/esm/components/form/automated/ResourceAutomatedForm.d.ts.map +1 -1
  343. package/dist/esm/components/form/automated/ResourceAutomatedForm.js +616 -149
  344. package/dist/esm/components/form/automated/ResourceAutomatedForm.js.map +1 -1
  345. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts +105 -5
  346. package/dist/esm/components/form/automated/automated-form-submit.utils.d.ts.map +1 -1
  347. package/dist/esm/components/form/automated/automated-form-submit.utils.js +225 -6
  348. package/dist/esm/components/form/automated/automated-form-submit.utils.js.map +1 -1
  349. package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts +59 -0
  350. package/dist/esm/components/form/automated/bulk-field-clear-context.d.ts.map +1 -0
  351. package/dist/esm/components/form/automated/bulk-field-clear-context.js +77 -0
  352. package/dist/esm/components/form/automated/bulk-field-clear-context.js.map +1 -0
  353. package/dist/esm/components/form/automated/generated-relationship-field.hooks.d.ts +1 -1
  354. package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts +19 -0
  355. package/dist/esm/components/form/automated/unplaced-request-fields.context.d.ts.map +1 -0
  356. package/dist/esm/components/form/automated/unplaced-request-fields.context.js +13 -0
  357. package/dist/esm/components/form/automated/unplaced-request-fields.context.js.map +1 -0
  358. package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts +7 -0
  359. package/dist/esm/components/form/automated/useArrayItemAutosaveField.d.ts.map +1 -1
  360. package/dist/esm/components/form/automated/useArrayItemAutosaveField.js +10 -2
  361. package/dist/esm/components/form/automated/useArrayItemAutosaveField.js.map +1 -1
  362. package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts +16 -0
  363. package/dist/esm/components/form/automated/useReferenceRecordLabels.d.ts.map +1 -0
  364. package/dist/esm/components/form/automated/useReferenceRecordLabels.js +66 -0
  365. package/dist/esm/components/form/automated/useReferenceRecordLabels.js.map +1 -0
  366. package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts +18 -0
  367. package/dist/esm/components/form/automated/useRequestFieldOffer.d.ts.map +1 -0
  368. package/dist/esm/components/form/automated/useRequestFieldOffer.js +107 -0
  369. package/dist/esm/components/form/automated/useRequestFieldOffer.js.map +1 -0
  370. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts +7 -1
  371. package/dist/esm/components/form/chromes/FormFieldChrome.d.ts.map +1 -1
  372. package/dist/esm/components/form/chromes/FormFieldChrome.js +6 -3
  373. package/dist/esm/components/form/chromes/FormFieldChrome.js.map +1 -1
  374. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts +11 -0
  375. package/dist/esm/components/form/controls/date-time/date-range-picker.d.ts.map +1 -1
  376. package/dist/esm/components/form/controls/date-time/date-range-picker.js.map +1 -1
  377. package/dist/esm/components/form/controls/date-time/datepicker.d.ts +21 -0
  378. package/dist/esm/components/form/controls/date-time/datepicker.d.ts.map +1 -1
  379. package/dist/esm/components/form/controls/date-time/datepicker.js.map +1 -1
  380. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts +9 -0
  381. package/dist/esm/components/form/controls/date-time/datetime-picker.d.ts.map +1 -1
  382. package/dist/esm/components/form/controls/date-time/datetime-picker.js.map +1 -1
  383. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts +9 -0
  384. package/dist/esm/components/form/controls/date-time/datetime-range-picker.d.ts.map +1 -1
  385. package/dist/esm/components/form/controls/date-time/datetime-range-picker.js.map +1 -1
  386. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts +1 -0
  387. package/dist/esm/components/form/controls/date-time/time-range-picker.d.ts.map +1 -1
  388. package/dist/esm/components/form/controls/date-time/time-range-picker.js.map +1 -1
  389. package/dist/esm/components/form/controls/enum/radio.d.ts +10 -0
  390. package/dist/esm/components/form/controls/enum/radio.d.ts.map +1 -1
  391. package/dist/esm/components/form/controls/enum/radio.js.map +1 -1
  392. package/dist/esm/components/form/controls/enum/toggle-group.d.ts +14 -10
  393. package/dist/esm/components/form/controls/enum/toggle-group.d.ts.map +1 -1
  394. package/dist/esm/components/form/controls/enum/toggle-group.js +14 -6
  395. package/dist/esm/components/form/controls/enum/toggle-group.js.map +1 -1
  396. package/dist/esm/components/form/controls/form-field-checkbox-group.d.ts.map +1 -1
  397. package/dist/esm/components/form/controls/form-field-checkbox-group.js +7 -3
  398. package/dist/esm/components/form/controls/form-field-checkbox-group.js.map +1 -1
  399. package/dist/esm/components/form/controls/string/chips-input.d.ts +65 -0
  400. package/dist/esm/components/form/controls/string/chips-input.d.ts.map +1 -0
  401. package/dist/esm/components/form/controls/string/chips-input.js +9 -0
  402. package/dist/esm/components/form/controls/string/chips-input.js.map +1 -0
  403. package/dist/esm/components/form/fields/form-field-address.d.ts.map +1 -1
  404. package/dist/esm/components/form/fields/form-field-address.js +7 -5
  405. package/dist/esm/components/form/fields/form-field-address.js.map +1 -1
  406. package/dist/esm/components/form/fields/form-field-address.labels.js +1 -1
  407. package/dist/esm/components/form/fields/form-field-address.labels.js.map +1 -1
  408. package/dist/esm/components/form/fields/form-field-bigdecimal.js +2 -2
  409. package/dist/esm/components/form/fields/form-field-bigdecimal.js.map +1 -1
  410. package/dist/esm/components/form/fields/form-field-boolean.js +2 -2
  411. package/dist/esm/components/form/fields/form-field-boolean.js.map +1 -1
  412. package/dist/esm/components/form/fields/form-field-code.labels.js +1 -1
  413. package/dist/esm/components/form/fields/form-field-code.labels.js.map +1 -1
  414. package/dist/esm/components/form/fields/form-field-date.d.ts.map +1 -1
  415. package/dist/esm/components/form/fields/form-field-date.js +16 -11
  416. package/dist/esm/components/form/fields/form-field-date.js.map +1 -1
  417. package/dist/esm/components/form/fields/form-field-datetime.d.ts.map +1 -1
  418. package/dist/esm/components/form/fields/form-field-datetime.js +10 -5
  419. package/dist/esm/components/form/fields/form-field-datetime.js.map +1 -1
  420. package/dist/esm/components/form/fields/form-field-duration.d.ts.map +1 -1
  421. package/dist/esm/components/form/fields/form-field-duration.js +5 -7
  422. package/dist/esm/components/form/fields/form-field-duration.js.map +1 -1
  423. package/dist/esm/components/form/fields/form-field-duration.labels.d.ts.map +1 -1
  424. package/dist/esm/components/form/fields/form-field-duration.labels.js +8 -2
  425. package/dist/esm/components/form/fields/form-field-duration.labels.js.map +1 -1
  426. package/dist/esm/components/form/fields/form-field-enum.d.ts.map +1 -1
  427. package/dist/esm/components/form/fields/form-field-enum.js +31 -31
  428. package/dist/esm/components/form/fields/form-field-enum.js.map +1 -1
  429. package/dist/esm/components/form/fields/form-field-file.d.ts.map +1 -1
  430. package/dist/esm/components/form/fields/form-field-file.js +13 -12
  431. package/dist/esm/components/form/fields/form-field-file.js.map +1 -1
  432. package/dist/esm/components/form/fields/form-field-file.labels.js +6 -6
  433. package/dist/esm/components/form/fields/form-field-file.labels.js.map +1 -1
  434. package/dist/esm/components/form/fields/form-field-money.d.ts.map +1 -1
  435. package/dist/esm/components/form/fields/form-field-money.js +5 -4
  436. package/dist/esm/components/form/fields/form-field-money.js.map +1 -1
  437. package/dist/esm/components/form/fields/form-field-money.labels.d.ts.map +1 -1
  438. package/dist/esm/components/form/fields/form-field-money.labels.js +8 -2
  439. package/dist/esm/components/form/fields/form-field-money.labels.js.map +1 -1
  440. package/dist/esm/components/form/fields/form-field-number.js +2 -2
  441. package/dist/esm/components/form/fields/form-field-number.js.map +1 -1
  442. package/dist/esm/components/form/fields/form-field-range-bigdecimal.js +2 -2
  443. package/dist/esm/components/form/fields/form-field-range-bigdecimal.js.map +1 -1
  444. package/dist/esm/components/form/fields/form-field-range-date.d.ts.map +1 -1
  445. package/dist/esm/components/form/fields/form-field-range-date.js +7 -2
  446. package/dist/esm/components/form/fields/form-field-range-date.js.map +1 -1
  447. package/dist/esm/components/form/fields/form-field-range-datetime.d.ts.map +1 -1
  448. package/dist/esm/components/form/fields/form-field-range-datetime.js +5 -2
  449. package/dist/esm/components/form/fields/form-field-range-datetime.js.map +1 -1
  450. package/dist/esm/components/form/fields/form-field-range-money.d.ts.map +1 -1
  451. package/dist/esm/components/form/fields/form-field-range-money.js +6 -19
  452. package/dist/esm/components/form/fields/form-field-range-money.js.map +1 -1
  453. package/dist/esm/components/form/fields/form-field-range-money.labels.d.ts.map +1 -1
  454. package/dist/esm/components/form/fields/form-field-range-money.labels.js +8 -2
  455. package/dist/esm/components/form/fields/form-field-range-money.labels.js.map +1 -1
  456. package/dist/esm/components/form/fields/form-field-range-number.js +2 -2
  457. package/dist/esm/components/form/fields/form-field-range-number.js.map +1 -1
  458. package/dist/esm/components/form/fields/form-field-range-time.js +2 -2
  459. package/dist/esm/components/form/fields/form-field-range-time.js.map +1 -1
  460. package/dist/esm/components/form/fields/form-field-resource-reference.d.ts +56 -0
  461. package/dist/esm/components/form/fields/form-field-resource-reference.d.ts.map +1 -0
  462. package/dist/esm/components/form/fields/form-field-resource-reference.js +51 -0
  463. package/dist/esm/components/form/fields/form-field-resource-reference.js.map +1 -0
  464. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts +36 -6
  465. package/dist/esm/components/form/fields/form-field-string-organization-role.d.ts.map +1 -1
  466. package/dist/esm/components/form/fields/form-field-string-organization-role.js +30 -11
  467. package/dist/esm/components/form/fields/form-field-string-organization-role.js.map +1 -1
  468. package/dist/esm/components/form/fields/form-field-string.d.ts +5 -0
  469. package/dist/esm/components/form/fields/form-field-string.d.ts.map +1 -1
  470. package/dist/esm/components/form/fields/form-field-string.js +9 -7
  471. package/dist/esm/components/form/fields/form-field-string.js.map +1 -1
  472. package/dist/esm/components/form/fields/form-field-time.d.ts.map +1 -1
  473. package/dist/esm/components/form/fields/form-field-time.js +6 -3
  474. package/dist/esm/components/form/fields/form-field-time.js.map +1 -1
  475. package/dist/esm/components/form/fields/themed-native-select.d.ts +29 -0
  476. package/dist/esm/components/form/fields/themed-native-select.d.ts.map +1 -0
  477. package/dist/esm/components/form/fields/themed-native-select.js +36 -0
  478. package/dist/esm/components/form/fields/themed-native-select.js.map +1 -0
  479. package/dist/esm/components/form/form-context.d.ts +11 -0
  480. package/dist/esm/components/form/form-context.d.ts.map +1 -1
  481. package/dist/esm/components/form/form-context.js +11 -0
  482. package/dist/esm/components/form/form-context.js.map +1 -1
  483. package/dist/esm/components/form/form-context.utils.d.ts +2 -0
  484. package/dist/esm/components/form/form-context.utils.d.ts.map +1 -1
  485. package/dist/esm/components/form/form-context.utils.js +6 -2
  486. package/dist/esm/components/form/form-context.utils.js.map +1 -1
  487. package/dist/esm/components/form/validation-errors/FormErrorSummary.d.ts.map +1 -1
  488. package/dist/esm/components/form/validation-errors/FormErrorSummary.js +17 -15
  489. package/dist/esm/components/form/validation-errors/FormErrorSummary.js.map +1 -1
  490. package/dist/esm/components/form/validation-errors/field-reveal.d.ts +41 -0
  491. package/dist/esm/components/form/validation-errors/field-reveal.d.ts.map +1 -0
  492. package/dist/esm/components/form/validation-errors/field-reveal.js +108 -0
  493. package/dist/esm/components/form/validation-errors/field-reveal.js.map +1 -0
  494. package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts +3 -0
  495. package/dist/esm/components/form/validation-errors/form-level-error-recheck.d.ts.map +1 -0
  496. package/dist/esm/components/form/validation-errors/form-level-error-recheck.js +37 -0
  497. package/dist/esm/components/form/validation-errors/form-level-error-recheck.js.map +1 -0
  498. package/dist/esm/components/form/validation-errors/getFieldError.d.ts +6 -0
  499. package/dist/esm/components/form/validation-errors/getFieldError.d.ts.map +1 -1
  500. package/dist/esm/components/form/validation-errors/getFieldError.js +9 -2
  501. package/dist/esm/components/form/validation-errors/getFieldError.js.map +1 -1
  502. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts +8 -1
  503. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.d.ts.map +1 -1
  504. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js +46 -3
  505. package/dist/esm/components/form/validation-errors/scroll-to-first-error.utils.js.map +1 -1
  506. package/dist/esm/components/form/validation-errors/useServerErrorInjection.d.ts.map +1 -1
  507. package/dist/esm/components/form/validation-errors/useServerErrorInjection.js +8 -3
  508. package/dist/esm/components/form/validation-errors/useServerErrorInjection.js.map +1 -1
  509. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts +32 -0
  510. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.d.ts.map +1 -0
  511. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js +60 -0
  512. package/dist/esm/components/form/validation-errors/validate-fields-and-show-errors.js.map +1 -0
  513. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts +10 -0
  514. package/dist/esm/components/form/validation-errors/zod-issue-resolver.d.ts.map +1 -1
  515. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js +12 -3
  516. package/dist/esm/components/form/validation-errors/zod-issue-resolver.js.map +1 -1
  517. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts +7 -0
  518. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.d.ts.map +1 -1
  519. package/dist/esm/components/navigation/app-level/ApplicationLevel_QuickActionButton.js.map +1 -1
  520. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts +6 -0
  521. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.d.ts.map +1 -1
  522. package/dist/esm/components/navigation/app-level/ApplicationLevel_UtilityPanel.js.map +1 -1
  523. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.d.ts.map +1 -1
  524. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js +11 -28
  525. package/dist/esm/components/navigation/app-level/SidebarResourceBrowser.js.map +1 -1
  526. package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts +46 -0
  527. package/dist/esm/components/navigation/app-level/engine-launcher-entries.d.ts.map +1 -0
  528. package/dist/esm/components/navigation/app-level/engine-launcher-entries.js +165 -0
  529. package/dist/esm/components/navigation/app-level/engine-launcher-entries.js.map +1 -0
  530. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.d.ts.map +1 -1
  531. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js +8 -3
  532. package/dist/esm/components/navigation/app-level/useCommandMenuBehavior.js.map +1 -1
  533. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.d.ts.map +1 -1
  534. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js +41 -20
  535. package/dist/esm/components/navigation/app-level/useMenuUserOrgBehavior.js.map +1 -1
  536. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts +1 -2
  537. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.d.ts.map +1 -1
  538. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js +1 -15
  539. package/dist/esm/components/navigation/app-level/useNavigationBehaviors.js.map +1 -1
  540. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts +32 -0
  541. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.d.ts.map +1 -0
  542. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js +91 -0
  543. package/dist/esm/components/navigation/app-level/useOwnOrganizationSearch.js.map +1 -0
  544. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.d.ts.map +1 -1
  545. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js +3 -1
  546. package/dist/esm/components/navigation/app-level/useQuickSwitcherBehavior.js.map +1 -1
  547. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts +18 -1
  548. package/dist/esm/components/navigation/app-level/useSidebarBehavior.d.ts.map +1 -1
  549. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js +66 -9
  550. package/dist/esm/components/navigation/app-level/useSidebarBehavior.js.map +1 -1
  551. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts +15 -10
  552. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.d.ts.map +1 -1
  553. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js +89 -12
  554. package/dist/esm/components/navigation/app-level/useUtilityPanelBehavior.js.map +1 -1
  555. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js +2 -2
  556. package/dist/esm/components/progression/ProgressionMilestoneTracker.labels.js.map +1 -1
  557. package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts +39 -0
  558. package/dist/esm/components/resources/CollectionSelectAllCheckbox.d.ts.map +1 -0
  559. package/dist/esm/components/resources/CollectionSelectAllCheckbox.js +21 -0
  560. package/dist/esm/components/resources/CollectionSelectAllCheckbox.js.map +1 -0
  561. package/dist/esm/components/resources/CollectionSelectionControls.d.ts +4 -3
  562. package/dist/esm/components/resources/CollectionSelectionControls.d.ts.map +1 -1
  563. package/dist/esm/components/resources/CollectionSelectionControls.js.map +1 -1
  564. package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts +7 -2
  565. package/dist/esm/components/resources/ResourceCollectionBody_Table.d.ts.map +1 -1
  566. package/dist/esm/components/resources/ResourceCollectionBody_Table.js +38 -14
  567. package/dist/esm/components/resources/ResourceCollectionBody_Table.js.map +1 -1
  568. package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts +4 -4
  569. package/dist/esm/components/resources/ResourceCollectionFilterPresets.d.ts.map +1 -1
  570. package/dist/esm/components/resources/ResourceCollectionFilterPresets.js +20 -13
  571. package/dist/esm/components/resources/ResourceCollectionFilterPresets.js.map +1 -1
  572. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts +4 -3
  573. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.d.ts.map +1 -1
  574. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js +40 -6
  575. package/dist/esm/components/resources/ResourceCollectionQuickFilterTabs.js.map +1 -1
  576. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts +65 -23
  577. package/dist/esm/components/resources/ResourceCollectionToolbar.d.ts.map +1 -1
  578. package/dist/esm/components/resources/ResourceCollectionToolbar.js +73 -10
  579. package/dist/esm/components/resources/ResourceCollectionToolbar.js.map +1 -1
  580. package/dist/esm/components/resources/ResourceLayout_Action.labels.d.ts.map +1 -1
  581. package/dist/esm/components/resources/ResourceLayout_Action.labels.js +5 -0
  582. package/dist/esm/components/resources/ResourceLayout_Action.labels.js.map +1 -1
  583. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts +18 -0
  584. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.d.ts.map +1 -1
  585. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js +57 -48
  586. package/dist/esm/components/resources/ResourceLayout_Breadcrumb.js.map +1 -1
  587. package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts +1 -1
  588. package/dist/esm/components/resources/ResourceLayout_CollectionActions.d.ts.map +1 -1
  589. package/dist/esm/components/resources/ResourceLayout_CollectionActions.js +1 -1
  590. package/dist/esm/components/resources/ResourceLayout_CollectionActions.js.map +1 -1
  591. package/dist/esm/components/resources/ResourceLayout_ContainerNested.d.ts.map +1 -1
  592. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js +7 -1
  593. package/dist/esm/components/resources/ResourceLayout_ContainerNested.js.map +1 -1
  594. package/dist/esm/components/resources/ResourceLayout_Create.d.ts.map +1 -1
  595. package/dist/esm/components/resources/ResourceLayout_Create.js +3 -4
  596. package/dist/esm/components/resources/ResourceLayout_Create.js.map +1 -1
  597. package/dist/esm/components/resources/ResourceLayout_Create.labels.d.ts.map +1 -1
  598. package/dist/esm/components/resources/ResourceLayout_Create.labels.js +10 -0
  599. package/dist/esm/components/resources/ResourceLayout_Create.labels.js.map +1 -1
  600. package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts +5 -3
  601. package/dist/esm/components/resources/ResourceLayout_DangerZone.d.ts.map +1 -1
  602. package/dist/esm/components/resources/ResourceLayout_DangerZone.js +4 -3
  603. package/dist/esm/components/resources/ResourceLayout_DangerZone.js.map +1 -1
  604. package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts +8 -1
  605. package/dist/esm/components/resources/ResourceLayout_FilterChips.d.ts.map +1 -1
  606. package/dist/esm/components/resources/ResourceLayout_FilterChips.js +83 -11
  607. package/dist/esm/components/resources/ResourceLayout_FilterChips.js.map +1 -1
  608. package/dist/esm/components/resources/ResourceLayout_Filters.labels.js +1 -1
  609. package/dist/esm/components/resources/ResourceLayout_Filters.labels.js.map +1 -1
  610. package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts +5 -8
  611. package/dist/esm/components/resources/ResourceLayout_FiltersControl.d.ts.map +1 -1
  612. package/dist/esm/components/resources/ResourceLayout_FiltersControl.js +68 -19
  613. package/dist/esm/components/resources/ResourceLayout_FiltersControl.js.map +1 -1
  614. package/dist/esm/components/resources/ResourceLayout_Header.d.ts.map +1 -1
  615. package/dist/esm/components/resources/ResourceLayout_Header.js +150 -44
  616. package/dist/esm/components/resources/ResourceLayout_Header.js.map +1 -1
  617. package/dist/esm/components/resources/ResourceLayout_InsertedViews.d.ts.map +1 -1
  618. package/dist/esm/components/resources/ResourceLayout_InsertedViews.js +62 -40
  619. package/dist/esm/components/resources/ResourceLayout_InsertedViews.js.map +1 -1
  620. package/dist/esm/components/resources/ResourceLayout_List.d.ts.map +1 -1
  621. package/dist/esm/components/resources/ResourceLayout_List.js +68 -70
  622. package/dist/esm/components/resources/ResourceLayout_List.js.map +1 -1
  623. package/dist/esm/components/resources/ResourceLayout_List.labels.d.ts.map +1 -1
  624. package/dist/esm/components/resources/ResourceLayout_List.labels.js +4 -10
  625. package/dist/esm/components/resources/ResourceLayout_List.labels.js.map +1 -1
  626. package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts +8 -9
  627. package/dist/esm/components/resources/ResourceLayout_OperationBulk.d.ts.map +1 -1
  628. package/dist/esm/components/resources/ResourceLayout_OperationBulk.js +67 -25
  629. package/dist/esm/components/resources/ResourceLayout_OperationBulk.js.map +1 -1
  630. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js +8 -8
  631. package/dist/esm/components/resources/ResourceLayout_OperationBulk.labels.js.map +1 -1
  632. package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts +8 -2
  633. package/dist/esm/components/resources/ResourceLayout_OperationsItems.d.ts.map +1 -1
  634. package/dist/esm/components/resources/ResourceLayout_OperationsItems.js +12 -7
  635. package/dist/esm/components/resources/ResourceLayout_OperationsItems.js.map +1 -1
  636. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.d.ts.map +1 -1
  637. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js +11 -6
  638. package/dist/esm/components/resources/ResourceLayout_OperationsItems.labels.js.map +1 -1
  639. package/dist/esm/components/resources/ResourceLayout_Read.d.ts +2 -0
  640. package/dist/esm/components/resources/ResourceLayout_Read.d.ts.map +1 -1
  641. package/dist/esm/components/resources/ResourceLayout_Read.js +23 -5
  642. package/dist/esm/components/resources/ResourceLayout_Read.js.map +1 -1
  643. package/dist/esm/components/resources/ResourceLayout_ReadSummary.d.ts.map +1 -1
  644. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js +5 -3
  645. package/dist/esm/components/resources/ResourceLayout_ReadSummary.js.map +1 -1
  646. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.d.ts.map +1 -1
  647. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js +18 -7
  648. package/dist/esm/components/resources/ResourceLayout_ReadSummary_TableRow.js.map +1 -1
  649. package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts +56 -0
  650. package/dist/esm/components/resources/ResourceLayout_RecordSharing.d.ts.map +1 -0
  651. package/dist/esm/components/resources/ResourceLayout_RecordSharing.js +184 -0
  652. package/dist/esm/components/resources/ResourceLayout_RecordSharing.js.map +1 -0
  653. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts +3 -0
  654. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.d.ts.map +1 -0
  655. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js +106 -0
  656. package/dist/esm/components/resources/ResourceLayout_RecordSharing.labels.js.map +1 -0
  657. package/dist/esm/components/resources/ResourceLayout_Search.d.ts.map +1 -1
  658. package/dist/esm/components/resources/ResourceLayout_Search.js +55 -42
  659. package/dist/esm/components/resources/ResourceLayout_Search.js.map +1 -1
  660. package/dist/esm/components/resources/ResourceLayout_Search.labels.d.ts.map +1 -1
  661. package/dist/esm/components/resources/ResourceLayout_Search.labels.js +0 -6
  662. package/dist/esm/components/resources/ResourceLayout_Search.labels.js.map +1 -1
  663. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts +8 -0
  664. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.d.ts.map +1 -1
  665. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js +2 -3
  666. package/dist/esm/components/resources/ResourceLayout_SemanticOperationFallback.js.map +1 -1
  667. package/dist/esm/components/resources/ResourceLayout_SortControl.d.ts.map +1 -1
  668. package/dist/esm/components/resources/ResourceLayout_SortControl.js +3 -2
  669. package/dist/esm/components/resources/ResourceLayout_SortControl.js.map +1 -1
  670. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts +29 -5
  671. package/dist/esm/components/resources/ResourceListItemRenderer.d.ts.map +1 -1
  672. package/dist/esm/components/resources/ResourceListItemRenderer.js +123 -41
  673. package/dist/esm/components/resources/ResourceListItemRenderer.js.map +1 -1
  674. package/dist/esm/components/resources/ResourceViewModeToggle.d.ts +6 -1
  675. package/dist/esm/components/resources/ResourceViewModeToggle.d.ts.map +1 -1
  676. package/dist/esm/components/resources/ResourceViewModeToggle.js +9 -7
  677. package/dist/esm/components/resources/ResourceViewModeToggle.js.map +1 -1
  678. package/dist/esm/components/resources/collection-card-layout.utils.d.ts +37 -15
  679. package/dist/esm/components/resources/collection-card-layout.utils.d.ts.map +1 -1
  680. package/dist/esm/components/resources/collection-card-layout.utils.js +37 -15
  681. package/dist/esm/components/resources/collection-card-layout.utils.js.map +1 -1
  682. package/dist/esm/components/resources/collection-selection-bar-density.d.ts +113 -0
  683. package/dist/esm/components/resources/collection-selection-bar-density.d.ts.map +1 -0
  684. package/dist/esm/components/resources/collection-selection-bar-density.js +175 -0
  685. package/dist/esm/components/resources/collection-selection-bar-density.js.map +1 -0
  686. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts +2 -1
  687. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.d.ts.map +1 -1
  688. package/dist/esm/components/resources/embeds/EmbeddedResourceDescent.js.map +1 -1
  689. package/dist/esm/components/resources/embeds/RelatedResourceSections.d.ts.map +1 -1
  690. package/dist/esm/components/resources/embeds/RelatedResourceSections.js +14 -2
  691. package/dist/esm/components/resources/embeds/RelatedResourceSections.js.map +1 -1
  692. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts +61 -1
  693. package/dist/esm/components/resources/embeds/ResourceEmbeds.d.ts.map +1 -1
  694. package/dist/esm/components/resources/embeds/ResourceEmbeds.js +151 -15
  695. package/dist/esm/components/resources/embeds/ResourceEmbeds.js.map +1 -1
  696. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts +11 -0
  697. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.d.ts.map +1 -1
  698. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js +13 -0
  699. package/dist/esm/components/resources/embeds/child-operation-addressability.utils.js.map +1 -1
  700. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts +24 -1
  701. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.d.ts.map +1 -1
  702. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js +47 -3
  703. package/dist/esm/components/resources/embeds/useEmbeddedResourceContext.js.map +1 -1
  704. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts +35 -0
  705. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.d.ts.map +1 -0
  706. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js +36 -0
  707. package/dist/esm/components/resources/resource-filter-field-type.frontend.schemas.js.map +1 -0
  708. package/dist/esm/components/resources/resource-header-geometry.d.ts +19 -0
  709. package/dist/esm/components/resources/resource-header-geometry.d.ts.map +1 -0
  710. package/dist/esm/components/resources/resource-header-geometry.js +19 -0
  711. package/dist/esm/components/resources/resource-header-geometry.js.map +1 -0
  712. package/dist/esm/components/resources/resourceLayout.utils.d.ts +28 -2
  713. package/dist/esm/components/resources/resourceLayout.utils.d.ts.map +1 -1
  714. package/dist/esm/components/resources/resourceLayout.utils.js +45 -12
  715. package/dist/esm/components/resources/resourceLayout.utils.js.map +1 -1
  716. package/dist/esm/components/resources/skeleton/ArrayField.d.ts.map +1 -1
  717. package/dist/esm/components/resources/skeleton/ArrayField.js +10 -0
  718. package/dist/esm/components/resources/skeleton/ArrayField.js.map +1 -1
  719. package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts +20 -4
  720. package/dist/esm/components/resources/skeleton/DisplayLayout.d.ts.map +1 -1
  721. package/dist/esm/components/resources/skeleton/DisplayLayout.js +19 -2
  722. package/dist/esm/components/resources/skeleton/DisplayLayout.js.map +1 -1
  723. package/dist/esm/components/resources/skeleton/FieldTiles.d.ts +48 -0
  724. package/dist/esm/components/resources/skeleton/FieldTiles.d.ts.map +1 -0
  725. package/dist/esm/components/resources/skeleton/FieldTiles.js +51 -0
  726. package/dist/esm/components/resources/skeleton/FieldTiles.js.map +1 -0
  727. package/dist/esm/components/resources/skeleton/FormLayout.d.ts.map +1 -1
  728. package/dist/esm/components/resources/skeleton/FormLayout.js +2 -1
  729. package/dist/esm/components/resources/skeleton/FormLayout.js.map +1 -1
  730. package/dist/esm/components/resources/skeleton/Group.d.ts.map +1 -1
  731. package/dist/esm/components/resources/skeleton/Group.js +5 -2
  732. package/dist/esm/components/resources/skeleton/Group.js.map +1 -1
  733. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts +77 -14
  734. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.d.ts.map +1 -1
  735. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js +98 -25
  736. package/dist/esm/components/resources/skeleton/ResourceHeaderTitle.js.map +1 -1
  737. package/dist/esm/components/resources/skeleton/Section.d.ts +7 -0
  738. package/dist/esm/components/resources/skeleton/Section.d.ts.map +1 -1
  739. package/dist/esm/components/resources/skeleton/Section.js +9 -3
  740. package/dist/esm/components/resources/skeleton/Section.js.map +1 -1
  741. package/dist/esm/components/resources/skeleton/SummaryLayout.d.ts +3 -3
  742. package/dist/esm/components/resources/skeleton/SummaryLayout.js +3 -3
  743. package/dist/esm/components/resources/skeleton/SummaryLayout.js.map +1 -1
  744. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts +7 -5
  745. package/dist/esm/components/resources/skeleton/WizardLayout.d.ts.map +1 -1
  746. package/dist/esm/components/resources/skeleton/WizardLayout.js +176 -65
  747. package/dist/esm/components/resources/skeleton/WizardLayout.js.map +1 -1
  748. package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts +9 -1
  749. package/dist/esm/components/resources/skeleton/WizardLayoutContext.d.ts.map +1 -1
  750. package/dist/esm/components/resources/skeleton/WizardLayoutContext.js +7 -0
  751. package/dist/esm/components/resources/skeleton/WizardLayoutContext.js.map +1 -1
  752. package/dist/esm/components/resources/skeleton/WizardStep.d.ts +1 -1
  753. package/dist/esm/components/resources/skeleton/WizardStep.d.ts.map +1 -1
  754. package/dist/esm/components/resources/skeleton/WizardStep.js +9 -5
  755. package/dist/esm/components/resources/skeleton/WizardStep.js.map +1 -1
  756. package/dist/esm/components/resources/skeleton/section-consolidation.utils.d.ts.map +1 -1
  757. package/dist/esm/components/resources/skeleton/section-consolidation.utils.js +31 -2
  758. package/dist/esm/components/resources/skeleton/section-consolidation.utils.js.map +1 -1
  759. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.d.ts.map +1 -1
  760. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js +176 -61
  761. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldDisplayPreset_ResourceReference_Default.js.map +1 -1
  762. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.d.ts.map +1 -1
  763. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js +14 -7
  764. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.js.map +1 -1
  765. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.d.ts.map +1 -1
  766. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js +18 -1
  767. package/dist/esm/components/resources-fields/_presets/resource-reference/ResourceFieldEditPreset_ResourceReference_Default.labels.js.map +1 -1
  768. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts +8 -0
  769. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.d.ts.map +1 -1
  770. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js +3 -0
  771. package/dist/esm/components/resources-fields/resource-reference/resource-reference.shared.utils.js.map +1 -1
  772. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.d.ts.map +1 -1
  773. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js +48 -17
  774. package/dist/esm/components/resources-fields/resource-reference/useResourceSearch.js.map +1 -1
  775. package/dist/esm/components/sections/ContentSectionContainer.d.ts.map +1 -1
  776. package/dist/esm/components/sections/ContentSectionContainer.js +226 -74
  777. package/dist/esm/components/sections/ContentSectionContainer.js.map +1 -1
  778. package/dist/esm/components/sections/ContentSectionContainer.labels.d.ts.map +1 -1
  779. package/dist/esm/components/sections/ContentSectionContainer.labels.js +2 -3
  780. package/dist/esm/components/sections/ContentSectionContainer.labels.js.map +1 -1
  781. package/dist/esm/components/sections/content-section.d.ts +2 -2
  782. package/dist/esm/components/sections/content-section.js.map +1 -1
  783. package/dist/esm/components/sections/section-grouping.shared.d.ts +19 -0
  784. package/dist/esm/components/sections/section-grouping.shared.d.ts.map +1 -1
  785. package/dist/esm/components/sections/section-grouping.shared.js +24 -0
  786. package/dist/esm/components/sections/section-grouping.shared.js.map +1 -1
  787. package/dist/esm/components/sections/section-legend-voice.context.d.ts +19 -0
  788. package/dist/esm/components/sections/section-legend-voice.context.d.ts.map +1 -0
  789. package/dist/esm/components/sections/section-legend-voice.context.js +21 -0
  790. package/dist/esm/components/sections/section-legend-voice.context.js.map +1 -0
  791. package/dist/esm/components/sections/section-legend-voice.d.ts +41 -0
  792. package/dist/esm/components/sections/section-legend-voice.d.ts.map +1 -0
  793. package/dist/esm/components/sections/section-legend-voice.js +67 -0
  794. package/dist/esm/components/sections/section-legend-voice.js.map +1 -0
  795. package/dist/esm/components/sections/stepper.d.ts +14 -0
  796. package/dist/esm/components/sections/stepper.d.ts.map +1 -1
  797. package/dist/esm/components/sections/stepper.js.map +1 -1
  798. package/dist/esm/components/sections/surface.d.ts.map +1 -1
  799. package/dist/esm/components/sections/surface.js +10 -2
  800. package/dist/esm/components/sections/surface.js.map +1 -1
  801. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts +39 -0
  802. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.d.ts.map +1 -0
  803. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js +187 -0
  804. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.js.map +1 -0
  805. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts +3 -0
  806. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.d.ts.map +1 -0
  807. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js +34 -0
  808. package/dist/esm/components/settings/AppPage_AgentWorkEvaluationExportSettings.labels.js.map +1 -0
  809. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.d.ts +1 -1
  810. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js +1 -1
  811. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.js.map +1 -1
  812. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js +8 -8
  813. package/dist/esm/components/settings/AppPage_AgentWorkOverrideRateSettings.labels.js.map +1 -1
  814. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts +43 -0
  815. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.d.ts.map +1 -0
  816. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js +142 -0
  817. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.js.map +1 -0
  818. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts +3 -0
  819. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.d.ts.map +1 -0
  820. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js +62 -0
  821. package/dist/esm/components/settings/AppPage_AutonomousAgentsSettings.labels.js.map +1 -0
  822. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts +25 -8
  823. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.d.ts.map +1 -1
  824. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js +275 -71
  825. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.js.map +1 -1
  826. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.d.ts.map +1 -1
  827. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js +91 -14
  828. package/dist/esm/components/settings/AppPage_ConnectedAccountsSettings.labels.js.map +1 -1
  829. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts +13 -8
  830. package/dist/esm/components/settings/AppPage_InvitationsSettings.d.ts.map +1 -1
  831. package/dist/esm/components/settings/AppPage_InvitationsSettings.js +95 -23
  832. package/dist/esm/components/settings/AppPage_InvitationsSettings.js.map +1 -1
  833. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.d.ts.map +1 -1
  834. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js +25 -2
  835. package/dist/esm/components/settings/AppPage_InvitationsSettings.labels.js.map +1 -1
  836. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts +67 -0
  837. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.d.ts.map +1 -0
  838. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js +177 -0
  839. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.js.map +1 -0
  840. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts +3 -0
  841. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.d.ts.map +1 -0
  842. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js +45 -0
  843. package/dist/esm/components/settings/AppPage_ModelCostBreakdownSettings.labels.js.map +1 -0
  844. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts +35 -0
  845. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.d.ts.map +1 -0
  846. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js +137 -0
  847. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.js.map +1 -0
  848. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts +3 -0
  849. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.d.ts.map +1 -0
  850. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js +38 -0
  851. package/dist/esm/components/settings/AppPage_RepresentativeActivitySettings.labels.js.map +1 -0
  852. package/dist/esm/components/settings/SettingsHub.d.ts +3 -3
  853. package/dist/esm/components/settings/SettingsHub.d.ts.map +1 -1
  854. package/dist/esm/components/settings/SettingsHub.js +98 -48
  855. package/dist/esm/components/settings/SettingsHub.js.map +1 -1
  856. package/dist/esm/components/settings/SettingsHub.labels.d.ts.map +1 -1
  857. package/dist/esm/components/settings/SettingsHub.labels.js +2 -0
  858. package/dist/esm/components/settings/SettingsHub.labels.js.map +1 -1
  859. package/dist/esm/components/settings/SettingsResourceOperationPanel.d.ts.map +1 -1
  860. package/dist/esm/components/settings/SettingsResourceOperationPanel.js +21 -1
  861. package/dist/esm/components/settings/SettingsResourceOperationPanel.js.map +1 -1
  862. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts +24 -5
  863. package/dist/esm/components/settings/useOwnerProviderConnections.d.ts.map +1 -1
  864. package/dist/esm/components/settings/useOwnerProviderConnections.js +67 -9
  865. package/dist/esm/components/settings/useOwnerProviderConnections.js.map +1 -1
  866. package/dist/esm/components/views/chart-view/ChartView.js +3 -3
  867. package/dist/esm/components/views/chart-view/ChartView.js.map +1 -1
  868. package/dist/esm/components/views/chart-view/chart-export.utils.d.ts.map +1 -1
  869. package/dist/esm/components/views/chart-view/chart-export.utils.js +2 -9
  870. package/dist/esm/components/views/chart-view/chart-export.utils.js.map +1 -1
  871. package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts +1 -0
  872. package/dist/esm/components/views/chart-view/enum-color-bridge.d.ts.map +1 -1
  873. package/dist/esm/components/views/chart-view/enum-color-bridge.js +10 -1
  874. package/dist/esm/components/views/chart-view/enum-color-bridge.js.map +1 -1
  875. package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts +8 -6
  876. package/dist/esm/components/views/chart-view/option-builder/builder-utils.d.ts.map +1 -1
  877. package/dist/esm/components/views/chart-view/option-builder/builder-utils.js +10 -8
  878. package/dist/esm/components/views/chart-view/option-builder/builder-utils.js.map +1 -1
  879. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js +2 -2
  880. package/dist/esm/components/views/chart-view/option-builder/builders/bar-family.builder.js.map +1 -1
  881. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js +1 -1
  882. package/dist/esm/components/views/chart-view/option-builder/builders/composed.builder.js.map +1 -1
  883. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js +1 -1
  884. package/dist/esm/components/views/chart-view/option-builder/builders/line-family.builder.js.map +1 -1
  885. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js +1 -1
  886. package/dist/esm/components/views/chart-view/option-builder/builders/scatter-family.builder.js.map +1 -1
  887. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts +6 -0
  888. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.d.ts.map +1 -1
  889. package/dist/esm/components/views/chart-view/option-builder/chart-type-builder.interface.js.map +1 -1
  890. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts +3 -1
  891. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.d.ts.map +1 -1
  892. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js +4 -1
  893. package/dist/esm/components/views/chart-view/option-builder/echarts-option-builder.js.map +1 -1
  894. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts +0 -1
  895. package/dist/esm/components/views/composite-view/CompositeLayout.d.ts.map +1 -1
  896. package/dist/esm/components/views/composite-view/CompositeLayout.js.map +1 -1
  897. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.d.ts.map +1 -1
  898. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js +24 -1
  899. package/dist/esm/components/views/composite-view/useCompositeResourceOperationContextBuilder.js.map +1 -1
  900. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts +29 -0
  901. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.d.ts.map +1 -0
  902. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js +104 -0
  903. package/dist/esm/components/views/flows-actors-view/AgentReplyReportAction.js.map +1 -0
  904. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts +16 -5
  905. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.d.ts.map +1 -1
  906. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js +219 -230
  907. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.js.map +1 -1
  908. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts +5 -0
  909. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.d.ts.map +1 -1
  910. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js +15 -13
  911. package/dist/esm/components/views/flows-actors-view/FlowsActorsView.labels.js.map +1 -1
  912. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts +13 -0
  913. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.d.ts.map +1 -0
  914. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js +44 -0
  915. package/dist/esm/components/views/flows-actors-view/held-conversation-selection.js.map +1 -0
  916. package/dist/esm/core/app-shell/AppShellBuildingBlocks.d.ts.map +1 -1
  917. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js +6 -2
  918. package/dist/esm/core/app-shell/AppShellBuildingBlocks.js.map +1 -1
  919. package/dist/esm/core/app-shell/app-shell.schemas.d.ts +64 -9
  920. package/dist/esm/core/app-shell/app-shell.schemas.d.ts.map +1 -1
  921. package/dist/esm/core/app-shell/app-shell.schemas.js.map +1 -1
  922. package/dist/esm/core/app-shell/hosted-components.utils.d.ts +11 -1
  923. package/dist/esm/core/app-shell/hosted-components.utils.d.ts.map +1 -1
  924. package/dist/esm/core/app-shell/hosted-components.utils.js +25 -0
  925. package/dist/esm/core/app-shell/hosted-components.utils.js.map +1 -1
  926. package/dist/esm/core/app-shell/shell-layout.d.ts +138 -0
  927. package/dist/esm/core/app-shell/shell-layout.d.ts.map +1 -0
  928. package/dist/esm/core/app-shell/shell-layout.js +143 -0
  929. package/dist/esm/core/app-shell/shell-layout.js.map +1 -0
  930. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts +13 -0
  931. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.d.ts.map +1 -0
  932. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js +49 -0
  933. package/dist/esm/core/app-shell/shell-motion/shell-layout-stylesheet.js.map +1 -0
  934. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts +95 -0
  935. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.d.ts.map +1 -0
  936. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js +316 -0
  937. package/dist/esm/core/app-shell/shell-motion/shell-motion-origins.js.map +1 -0
  938. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts +217 -0
  939. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.d.ts.map +1 -0
  940. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js +197 -0
  941. package/dist/esm/core/app-shell/shell-motion/shell-motion-vocabulary.js.map +1 -0
  942. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts +46 -0
  943. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.d.ts.map +1 -0
  944. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js +139 -0
  945. package/dist/esm/core/app-shell/shell-motion/shell-view-transition.js.map +1 -0
  946. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts +108 -0
  947. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.d.ts.map +1 -0
  948. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js +423 -0
  949. package/dist/esm/core/app-shell/shell-motion/use-shell-motion.js.map +1 -0
  950. package/dist/esm/core/app-shell/useAppShellLayout.d.ts.map +1 -1
  951. package/dist/esm/core/app-shell/useAppShellLayout.js +6 -1
  952. package/dist/esm/core/app-shell/useAppShellLayout.js.map +1 -1
  953. package/dist/esm/core/app-shell/usePublicShellLayout.d.ts.map +1 -1
  954. package/dist/esm/core/app-shell/usePublicShellLayout.js +11 -4
  955. package/dist/esm/core/app-shell/usePublicShellLayout.js.map +1 -1
  956. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts +18 -1
  957. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.d.ts.map +1 -1
  958. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js +26 -4
  959. package/dist/esm/core/automated-layout/automated-layout.frontend.utils.js.map +1 -1
  960. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.d.ts.map +1 -1
  961. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js +3 -22
  962. package/dist/esm/core/automated-layout/composite-value-defaults.frontend.utils.js.map +1 -1
  963. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts +19 -3
  964. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.d.ts.map +1 -1
  965. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js +100 -13
  966. package/dist/esm/core/automated-layout/default-layout-generator.frontend.utils.js.map +1 -1
  967. package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts +67 -0
  968. package/dist/esm/core/automated-layout/summary-value-naming.utils.d.ts.map +1 -0
  969. package/dist/esm/core/automated-layout/summary-value-naming.utils.js +100 -0
  970. package/dist/esm/core/automated-layout/summary-value-naming.utils.js.map +1 -0
  971. package/dist/esm/core/billing/BillingContext.d.ts +0 -17
  972. package/dist/esm/core/billing/BillingContext.d.ts.map +1 -1
  973. package/dist/esm/core/billing/BillingContext.js +6 -1
  974. package/dist/esm/core/billing/BillingContext.js.map +1 -1
  975. package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts +2 -0
  976. package/dist/esm/core/branding/OrganizationBrandingPublisher.d.ts.map +1 -0
  977. package/dist/esm/core/branding/OrganizationBrandingPublisher.js +78 -0
  978. package/dist/esm/core/branding/OrganizationBrandingPublisher.js.map +1 -0
  979. package/dist/esm/core/branding/useBrandIdentity.d.ts +21 -0
  980. package/dist/esm/core/branding/useBrandIdentity.d.ts.map +1 -1
  981. package/dist/esm/core/branding/useBrandIdentity.js +31 -5
  982. package/dist/esm/core/branding/useBrandIdentity.js.map +1 -1
  983. package/dist/esm/core/branding/useBrandPresentation.d.ts +5 -0
  984. package/dist/esm/core/branding/useBrandPresentation.d.ts.map +1 -1
  985. package/dist/esm/core/branding/useBrandPresentation.js +1 -0
  986. package/dist/esm/core/branding/useBrandPresentation.js.map +1 -1
  987. package/dist/esm/core/branding/useDisplayableImageUrl.d.ts +4 -0
  988. package/dist/esm/core/branding/useDisplayableImageUrl.d.ts.map +1 -0
  989. package/dist/esm/core/branding/useDisplayableImageUrl.js +66 -0
  990. package/dist/esm/core/branding/useDisplayableImageUrl.js.map +1 -0
  991. package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts +2 -0
  992. package/dist/esm/core/branding/useOrganizationDocumentTitle.d.ts.map +1 -0
  993. package/dist/esm/core/branding/useOrganizationDocumentTitle.js +23 -0
  994. package/dist/esm/core/branding/useOrganizationDocumentTitle.js.map +1 -0
  995. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts +16 -0
  996. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.d.ts.map +1 -0
  997. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js +35 -0
  998. package/dist/esm/core/commons/save-blob-as-file.frontend.utils.js.map +1 -0
  999. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.d.ts.map +1 -1
  1000. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js +8 -0
  1001. package/dist/esm/core/components-registry/assert-registry-completeness.frontend.helper.js.map +1 -1
  1002. package/dist/esm/core/components-registry/component-resolver.frontend.helper.d.ts.map +1 -1
  1003. package/dist/esm/core/components-registry/component-resolver.frontend.helper.js +34 -5
  1004. package/dist/esm/core/components-registry/component-resolver.frontend.helper.js.map +1 -1
  1005. package/dist/esm/core/components-registry/register-framework-layouts.d.ts.map +1 -1
  1006. package/dist/esm/core/components-registry/register-framework-layouts.js +4 -0
  1007. package/dist/esm/core/components-registry/register-framework-layouts.js.map +1 -1
  1008. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts +36 -0
  1009. package/dist/esm/core/config/app-configuration-frontend.schemas.d.ts.map +1 -1
  1010. package/dist/esm/core/config/app-configuration-frontend.schemas.js +29 -2
  1011. package/dist/esm/core/config/app-configuration-frontend.schemas.js.map +1 -1
  1012. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts +10 -16
  1013. package/dist/esm/core/config/app-level-components.frontend.schemas.d.ts.map +1 -1
  1014. package/dist/esm/core/config/app-level-components.frontend.schemas.js +10 -16
  1015. package/dist/esm/core/config/app-level-components.frontend.schemas.js.map +1 -1
  1016. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts +12 -8
  1017. package/dist/esm/core/config/chart-view.frontend.schemas.d.ts.map +1 -1
  1018. package/dist/esm/core/config/chart-view.frontend.schemas.js +10 -0
  1019. package/dist/esm/core/config/chart-view.frontend.schemas.js.map +1 -1
  1020. package/dist/esm/core/config/composite-view.schemas.d.ts +2 -2
  1021. package/dist/esm/core/config/config-merge-utilities.d.ts +31 -3
  1022. package/dist/esm/core/config/config-merge-utilities.d.ts.map +1 -1
  1023. package/dist/esm/core/config/config-merge-utilities.js +61 -7
  1024. package/dist/esm/core/config/config-merge-utilities.js.map +1 -1
  1025. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts +83 -0
  1026. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.d.ts.map +1 -0
  1027. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js +100 -0
  1028. package/dist/esm/core/config/decision-inbox-capability.frontend.utils.js.map +1 -0
  1029. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts +69 -0
  1030. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.d.ts.map +1 -0
  1031. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js +65 -0
  1032. package/dist/esm/core/config/directory-provisioning-capabilities.frontend.utils.js.map +1 -0
  1033. package/dist/esm/core/config/engine-settings-destinations.d.ts +13 -1
  1034. package/dist/esm/core/config/engine-settings-destinations.d.ts.map +1 -1
  1035. package/dist/esm/core/config/engine-settings-destinations.js +588 -155
  1036. package/dist/esm/core/config/engine-settings-destinations.js.map +1 -1
  1037. package/dist/esm/core/config/execution-view.schemas.d.ts +17 -3
  1038. package/dist/esm/core/config/execution-view.schemas.d.ts.map +1 -1
  1039. package/dist/esm/core/config/execution-view.schemas.js +1 -1
  1040. package/dist/esm/core/config/execution-view.schemas.js.map +1 -1
  1041. package/dist/esm/core/config/flows-actors-view.schemas.d.ts +12 -2
  1042. package/dist/esm/core/config/flows-actors-view.schemas.d.ts.map +1 -1
  1043. package/dist/esm/core/config/flows-actors-view.schemas.js +13 -1
  1044. package/dist/esm/core/config/flows-actors-view.schemas.js.map +1 -1
  1045. package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts +12 -11
  1046. package/dist/esm/core/config/inserted-view-launcher.schemas.d.ts.map +1 -1
  1047. package/dist/esm/core/config/inserted-view-launcher.schemas.js +14 -13
  1048. package/dist/esm/core/config/inserted-view-launcher.schemas.js.map +1 -1
  1049. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts +77 -27
  1050. package/dist/esm/core/config/launcher-items.frontend.schemas.d.ts.map +1 -1
  1051. package/dist/esm/core/config/launcher-items.frontend.schemas.js +18 -13
  1052. package/dist/esm/core/config/launcher-items.frontend.schemas.js.map +1 -1
  1053. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts +79 -0
  1054. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.d.ts.map +1 -0
  1055. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js +95 -0
  1056. package/dist/esm/core/config/relationship-side-capabilities.frontend.utils.js.map +1 -0
  1057. package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts +19 -7
  1058. package/dist/esm/core/config/settings-hub-gating.frontend.utils.d.ts.map +1 -1
  1059. package/dist/esm/core/config/settings-hub-gating.frontend.utils.js +45 -10
  1060. package/dist/esm/core/config/settings-hub-gating.frontend.utils.js.map +1 -1
  1061. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts +2 -2
  1062. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.d.ts.map +1 -1
  1063. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js +38 -5
  1064. package/dist/esm/core/config/settings-hub-presentation.frontend.utils.js.map +1 -1
  1065. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts +94 -10
  1066. package/dist/esm/core/config/settings-hub.frontend.schemas.d.ts.map +1 -1
  1067. package/dist/esm/core/config/settings-hub.frontend.schemas.js +40 -3
  1068. package/dist/esm/core/config/settings-hub.frontend.schemas.js.map +1 -1
  1069. package/dist/esm/core/config/useSettingsHubConfig.d.ts.map +1 -1
  1070. package/dist/esm/core/config/useSettingsHubConfig.js +4 -1
  1071. package/dist/esm/core/config/useSettingsHubConfig.js.map +1 -1
  1072. package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts +2 -2
  1073. package/dist/esm/core/config/useVisibleSettingsHubConfig.d.ts.map +1 -1
  1074. package/dist/esm/core/config/useVisibleSettingsHubConfig.js +7 -8
  1075. package/dist/esm/core/config/useVisibleSettingsHubConfig.js.map +1 -1
  1076. package/dist/esm/core/config/verify-launcher-content.d.ts +16 -2
  1077. package/dist/esm/core/config/verify-launcher-content.d.ts.map +1 -1
  1078. package/dist/esm/core/config/verify-launcher-content.js +64 -4
  1079. package/dist/esm/core/config/verify-launcher-content.js.map +1 -1
  1080. package/dist/esm/core/config/verify-settings-hub-content.d.ts +4 -0
  1081. package/dist/esm/core/config/verify-settings-hub-content.d.ts.map +1 -1
  1082. package/dist/esm/core/config/verify-settings-hub-content.js +34 -0
  1083. package/dist/esm/core/config/verify-settings-hub-content.js.map +1 -1
  1084. package/dist/esm/core/enums/common-enum-registry.d.ts +16 -23
  1085. package/dist/esm/core/enums/common-enum-registry.d.ts.map +1 -1
  1086. package/dist/esm/core/enums/common-enum-registry.js +26 -29
  1087. package/dist/esm/core/enums/common-enum-registry.js.map +1 -1
  1088. package/dist/esm/core/errors/GlobalErrorHandler.d.ts.map +1 -1
  1089. package/dist/esm/core/errors/GlobalErrorHandler.js +71 -9
  1090. package/dist/esm/core/errors/GlobalErrorHandler.js.map +1 -1
  1091. package/dist/esm/core/errors/error-management.frontend.service.d.ts +0 -4
  1092. package/dist/esm/core/errors/error-management.frontend.service.d.ts.map +1 -1
  1093. package/dist/esm/core/errors/error-management.frontend.service.js +5 -8
  1094. package/dist/esm/core/errors/error-management.frontend.service.js.map +1 -1
  1095. package/dist/esm/core/errors/errors.frontend.schemas.d.ts +21 -10
  1096. package/dist/esm/core/errors/errors.frontend.schemas.d.ts.map +1 -1
  1097. package/dist/esm/core/errors/errors.frontend.schemas.js.map +1 -1
  1098. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts +35 -0
  1099. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.d.ts.map +1 -1
  1100. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js +44 -5
  1101. package/dist/esm/core/errors/user-facing-error-message.frontend.utils.js.map +1 -1
  1102. package/dist/esm/core/events/EventBusContext.js.map +1 -1
  1103. package/dist/esm/core/events/NotificationContext.d.ts +13 -1
  1104. package/dist/esm/core/events/NotificationContext.d.ts.map +1 -1
  1105. package/dist/esm/core/events/NotificationContext.js +89 -22
  1106. package/dist/esm/core/events/NotificationContext.js.map +1 -1
  1107. package/dist/esm/core/events/events.frontend.schemas.d.ts +68 -4
  1108. package/dist/esm/core/events/events.frontend.schemas.d.ts.map +1 -1
  1109. package/dist/esm/core/events/events.frontend.schemas.js +67 -3
  1110. package/dist/esm/core/events/events.frontend.schemas.js.map +1 -1
  1111. package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts +9 -0
  1112. package/dist/esm/core/events/useNotificationPreferenceKinds.d.ts.map +1 -0
  1113. package/dist/esm/core/events/useNotificationPreferenceKinds.js +50 -0
  1114. package/dist/esm/core/events/useNotificationPreferenceKinds.js.map +1 -0
  1115. package/dist/esm/core/execution/useExecution.js +1 -1
  1116. package/dist/esm/core/execution/useExecution.js.map +1 -1
  1117. package/dist/esm/core/execution/useExecutionParticipationRMM.d.ts.map +1 -1
  1118. package/dist/esm/core/execution/useExecutionParticipationRMM.js +4 -0
  1119. package/dist/esm/core/execution/useExecutionParticipationRMM.js.map +1 -1
  1120. package/dist/esm/core/execution/useExecutionResourceOperationSurface.d.ts.map +1 -1
  1121. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js +3 -3
  1122. package/dist/esm/core/execution/useExecutionResourceOperationSurface.js.map +1 -1
  1123. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts +52 -0
  1124. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.d.ts.map +1 -0
  1125. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js +88 -0
  1126. package/dist/esm/core/external-providers/chat-sign-in-completion.frontend.js.map +1 -0
  1127. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts +20 -2
  1128. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.d.ts.map +1 -1
  1129. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js +18 -1
  1130. package/dist/esm/core/external-providers/frontend-provider-registry.frontend.service.js.map +1 -1
  1131. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts +7 -5
  1132. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.d.ts.map +1 -1
  1133. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js +9 -6
  1134. package/dist/esm/core/external-providers/provider-scope-reauthorization-offers.frontend.js.map +1 -1
  1135. package/dist/esm/core/features/FeaturesContext.d.ts +9 -1
  1136. package/dist/esm/core/features/FeaturesContext.d.ts.map +1 -1
  1137. package/dist/esm/core/features/FeaturesContext.js +38 -12
  1138. package/dist/esm/core/features/FeaturesContext.js.map +1 -1
  1139. package/dist/esm/core/features/useOperationFeatureAvailability.d.ts.map +1 -1
  1140. package/dist/esm/core/features/useOperationFeatureAvailability.js +4 -0
  1141. package/dist/esm/core/features/useOperationFeatureAvailability.js.map +1 -1
  1142. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts +90 -33
  1143. package/dist/esm/core/flows-actors/FlowsActorsContext.d.ts.map +1 -1
  1144. package/dist/esm/core/flows-actors/FlowsActorsContext.js +153 -100
  1145. package/dist/esm/core/flows-actors/FlowsActorsContext.js.map +1 -1
  1146. package/dist/esm/core/flows-actors/conversation-history.model.d.ts +41 -0
  1147. package/dist/esm/core/flows-actors/conversation-history.model.d.ts.map +1 -0
  1148. package/dist/esm/core/flows-actors/conversation-history.model.js +65 -0
  1149. package/dist/esm/core/flows-actors/conversation-history.model.js.map +1 -0
  1150. package/dist/esm/core/flows-actors/conversation-thread.model.d.ts +144 -0
  1151. package/dist/esm/core/flows-actors/conversation-thread.model.d.ts.map +1 -0
  1152. package/dist/esm/core/flows-actors/conversation-thread.model.js +315 -0
  1153. package/dist/esm/core/flows-actors/conversation-thread.model.js.map +1 -0
  1154. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts +29 -0
  1155. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.d.ts.map +1 -0
  1156. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js +67 -0
  1157. package/dist/esm/core/flows-actors/execution-usages-batch.frontend.utils.js.map +1 -0
  1158. package/dist/esm/core/flows-actors/graph-view.layout.d.ts +77 -0
  1159. package/dist/esm/core/flows-actors/graph-view.layout.d.ts.map +1 -0
  1160. package/dist/esm/core/flows-actors/graph-view.layout.js +169 -0
  1161. package/dist/esm/core/flows-actors/graph-view.layout.js.map +1 -0
  1162. package/dist/esm/core/flows-actors/graph-view.model.d.ts +245 -0
  1163. package/dist/esm/core/flows-actors/graph-view.model.d.ts.map +1 -0
  1164. package/dist/esm/core/flows-actors/graph-view.model.js +414 -0
  1165. package/dist/esm/core/flows-actors/graph-view.model.js.map +1 -0
  1166. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts +12 -0
  1167. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.d.ts.map +1 -0
  1168. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js +20 -0
  1169. package/dist/esm/core/flows-actors/model-cost-money.frontend.utils.js.map +1 -0
  1170. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts +36 -11
  1171. package/dist/esm/core/flows-actors/usePendingDecisions.d.ts.map +1 -1
  1172. package/dist/esm/core/flows-actors/usePendingDecisions.js +114 -29
  1173. package/dist/esm/core/flows-actors/usePendingDecisions.js.map +1 -1
  1174. package/dist/esm/core/guidance/GuidanceContext.d.ts.map +1 -1
  1175. package/dist/esm/core/guidance/GuidanceContext.js +1 -2
  1176. package/dist/esm/core/guidance/GuidanceContext.js.map +1 -1
  1177. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js +2 -2
  1178. package/dist/esm/core/guidance/renderers/GuidanceChecklist.labels.js.map +1 -1
  1179. package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts +3 -9
  1180. package/dist/esm/core/hotkey/DefaultHotkeyHandler.d.ts.map +1 -1
  1181. package/dist/esm/core/hotkey/DefaultHotkeyHandler.js +3 -15
  1182. package/dist/esm/core/hotkey/DefaultHotkeyHandler.js.map +1 -1
  1183. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.d.ts +2 -2
  1184. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js +2 -2
  1185. package/dist/esm/core/hotkey/merge-hotkey-emit-shortcuts.js.map +1 -1
  1186. package/dist/esm/core/i18n/I18nContext.d.ts +52 -3
  1187. package/dist/esm/core/i18n/I18nContext.d.ts.map +1 -1
  1188. package/dist/esm/core/i18n/I18nContext.js +80 -7
  1189. package/dist/esm/core/i18n/I18nContext.js.map +1 -1
  1190. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts +82 -1
  1191. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.d.ts.map +1 -1
  1192. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js +121 -6
  1193. package/dist/esm/core/i18n/regional-preference-resolution.frontend.utils.js.map +1 -1
  1194. package/dist/esm/core/i18n/useI18n.d.ts +3 -1
  1195. package/dist/esm/core/i18n/useI18n.d.ts.map +1 -1
  1196. package/dist/esm/core/i18n/useI18n.js +3 -1
  1197. package/dist/esm/core/i18n/useI18n.js.map +1 -1
  1198. package/dist/esm/core/icons/IconRegistryBridge.d.ts +38 -4
  1199. package/dist/esm/core/icons/IconRegistryBridge.d.ts.map +1 -1
  1200. package/dist/esm/core/icons/IconRegistryBridge.js +103 -63
  1201. package/dist/esm/core/icons/IconRegistryBridge.js.map +1 -1
  1202. package/dist/esm/core/icons/IconRegistryContext.d.ts.map +1 -1
  1203. package/dist/esm/core/icons/IconRegistryContext.js +41 -0
  1204. package/dist/esm/core/icons/IconRegistryContext.js.map +1 -1
  1205. package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts +44 -0
  1206. package/dist/esm/core/icons/icon-registry.frontend.schemas.d.ts.map +1 -1
  1207. package/dist/esm/core/icons/icon-registry.frontend.schemas.js +46 -0
  1208. package/dist/esm/core/icons/icon-registry.frontend.schemas.js.map +1 -1
  1209. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js +2 -2
  1210. package/dist/esm/core/monitoring/analytics/providers/backend-proxy-analytics.provider.js.map +1 -1
  1211. package/dist/esm/core/navigation/NavigationContentAreas.d.ts +64 -20
  1212. package/dist/esm/core/navigation/NavigationContentAreas.d.ts.map +1 -1
  1213. package/dist/esm/core/navigation/NavigationContentAreas.js +82 -51
  1214. package/dist/esm/core/navigation/NavigationContentAreas.js.map +1 -1
  1215. package/dist/esm/core/navigation/NavigationContext.d.ts.map +1 -1
  1216. package/dist/esm/core/navigation/NavigationContext.js +130 -23
  1217. package/dist/esm/core/navigation/NavigationContext.js.map +1 -1
  1218. package/dist/esm/core/navigation/NavigationRequestBridge.d.ts +4 -0
  1219. package/dist/esm/core/navigation/NavigationRequestBridge.d.ts.map +1 -1
  1220. package/dist/esm/core/navigation/NavigationRequestBridge.js +17 -1
  1221. package/dist/esm/core/navigation/NavigationRequestBridge.js.map +1 -1
  1222. package/dist/esm/core/navigation/ZoneChromeContext.d.ts +80 -0
  1223. package/dist/esm/core/navigation/ZoneChromeContext.d.ts.map +1 -0
  1224. package/dist/esm/core/navigation/ZoneChromeContext.js +130 -0
  1225. package/dist/esm/core/navigation/ZoneChromeContext.js.map +1 -0
  1226. package/dist/esm/core/navigation/launcher-resolution.d.ts +102 -2
  1227. package/dist/esm/core/navigation/launcher-resolution.d.ts.map +1 -1
  1228. package/dist/esm/core/navigation/launcher-resolution.js +194 -9
  1229. package/dist/esm/core/navigation/launcher-resolution.js.map +1 -1
  1230. package/dist/esm/core/navigation/launcher-runtime-availability.d.ts +35 -5
  1231. package/dist/esm/core/navigation/launcher-runtime-availability.d.ts.map +1 -1
  1232. package/dist/esm/core/navigation/launcher-runtime-availability.js +147 -18
  1233. package/dist/esm/core/navigation/launcher-runtime-availability.js.map +1 -1
  1234. package/dist/esm/core/navigation/navigation-cascade.d.ts +44 -14
  1235. package/dist/esm/core/navigation/navigation-cascade.d.ts.map +1 -1
  1236. package/dist/esm/core/navigation/navigation-cascade.js +87 -19
  1237. package/dist/esm/core/navigation/navigation-cascade.js.map +1 -1
  1238. package/dist/esm/core/navigation/navigation-commit.d.ts +45 -0
  1239. package/dist/esm/core/navigation/navigation-commit.d.ts.map +1 -0
  1240. package/dist/esm/core/navigation/navigation-commit.js +68 -0
  1241. package/dist/esm/core/navigation/navigation-commit.js.map +1 -0
  1242. package/dist/esm/core/navigation/navigation-controller-internals.d.ts +54 -3
  1243. package/dist/esm/core/navigation/navigation-controller-internals.d.ts.map +1 -1
  1244. package/dist/esm/core/navigation/navigation-controller-internals.js +91 -3
  1245. package/dist/esm/core/navigation/navigation-controller-internals.js.map +1 -1
  1246. package/dist/esm/core/navigation/navigation-policy-resolver.service.d.ts +3 -3
  1247. package/dist/esm/core/navigation/navigation-policy-resolver.service.js +3 -3
  1248. package/dist/esm/core/navigation/navigation-policy-resolver.service.js.map +1 -1
  1249. package/dist/esm/core/navigation/navigation.utils.d.ts +95 -22
  1250. package/dist/esm/core/navigation/navigation.utils.d.ts.map +1 -1
  1251. package/dist/esm/core/navigation/navigation.utils.js +190 -63
  1252. package/dist/esm/core/navigation/navigation.utils.js.map +1 -1
  1253. package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts +8 -0
  1254. package/dist/esm/core/navigation/sidebar-resource-browser-operation.d.ts.map +1 -0
  1255. package/dist/esm/core/navigation/sidebar-resource-browser-operation.js +27 -0
  1256. package/dist/esm/core/navigation/sidebar-resource-browser-operation.js.map +1 -0
  1257. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts +64 -0
  1258. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.d.ts.map +1 -0
  1259. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js +212 -0
  1260. package/dist/esm/core/navigation/useCurrentOrganizationHoldsUnrevokedScimToken.js.map +1 -0
  1261. package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts +1 -1
  1262. package/dist/esm/core/navigation/useLauncherResolutionContext.d.ts.map +1 -1
  1263. package/dist/esm/core/navigation/useLauncherResolutionContext.js +17 -2
  1264. package/dist/esm/core/navigation/useLauncherResolutionContext.js.map +1 -1
  1265. package/dist/esm/core/navigation/useNavigationController.d.ts +1 -0
  1266. package/dist/esm/core/navigation/useNavigationController.d.ts.map +1 -1
  1267. package/dist/esm/core/navigation/useNavigationController.js +51 -67
  1268. package/dist/esm/core/navigation/useNavigationController.js.map +1 -1
  1269. package/dist/esm/core/navigation/useNavigationRouterSync.d.ts.map +1 -1
  1270. package/dist/esm/core/navigation/useNavigationRouterSync.js +17 -1
  1271. package/dist/esm/core/navigation/useNavigationRouterSync.js.map +1 -1
  1272. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts +17 -0
  1273. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.d.ts.map +1 -0
  1274. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js +32 -0
  1275. package/dist/esm/core/navigation/useZoneEntryOrganizationHold.js.map +1 -0
  1276. package/dist/esm/core/navigation/zone-collapse.d.ts +2 -1
  1277. package/dist/esm/core/navigation/zone-collapse.d.ts.map +1 -1
  1278. package/dist/esm/core/navigation/zone-collapse.js +2 -1
  1279. package/dist/esm/core/navigation/zone-collapse.js.map +1 -1
  1280. package/dist/esm/core/navigation/zone-entry-organization.d.ts +34 -0
  1281. package/dist/esm/core/navigation/zone-entry-organization.d.ts.map +1 -0
  1282. package/dist/esm/core/navigation/zone-entry-organization.js +77 -0
  1283. package/dist/esm/core/navigation/zone-entry-organization.js.map +1 -0
  1284. package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts +15 -0
  1285. package/dist/esm/core/requests/auth-refresh-resilience.frontend.d.ts.map +1 -1
  1286. package/dist/esm/core/requests/auth-refresh-resilience.frontend.js +24 -0
  1287. package/dist/esm/core/requests/auth-refresh-resilience.frontend.js.map +1 -1
  1288. package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts +74 -0
  1289. package/dist/esm/core/requests/automatic-resend-safety.frontend.d.ts.map +1 -0
  1290. package/dist/esm/core/requests/automatic-resend-safety.frontend.js +52 -0
  1291. package/dist/esm/core/requests/automatic-resend-safety.frontend.js.map +1 -0
  1292. package/dist/esm/core/requests/websockets/WebSocketContext.d.ts.map +1 -1
  1293. package/dist/esm/core/requests/websockets/WebSocketContext.js +31 -0
  1294. package/dist/esm/core/requests/websockets/WebSocketContext.js.map +1 -1
  1295. package/dist/esm/core/requests/websockets/WebSocketEventBridge.d.ts.map +1 -1
  1296. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js +2 -0
  1297. package/dist/esm/core/requests/websockets/WebSocketEventBridge.js.map +1 -1
  1298. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts +162 -98
  1299. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.d.ts.map +1 -1
  1300. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js +283 -157
  1301. package/dist/esm/core/requests/wildo-http-client-manual-calls.frontend.service.js.map +1 -1
  1302. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts +9 -13
  1303. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.d.ts.map +1 -1
  1304. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js +45 -97
  1305. package/dist/esm/core/requests/wildo-http-client-resources.frontend.service.js.map +1 -1
  1306. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts +25 -5
  1307. package/dist/esm/core/requests/wildo-http-client.frontend.service.d.ts.map +1 -1
  1308. package/dist/esm/core/requests/wildo-http-client.frontend.service.js +56 -11
  1309. package/dist/esm/core/requests/wildo-http-client.frontend.service.js.map +1 -1
  1310. package/dist/esm/core/resources/ScopedResourceRegistryProvider.d.ts.map +1 -1
  1311. package/dist/esm/core/resources/ScopedResourceRegistryProvider.js +1 -2
  1312. package/dist/esm/core/resources/ScopedResourceRegistryProvider.js.map +1 -1
  1313. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts +14 -0
  1314. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.d.ts.map +1 -0
  1315. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js +29 -0
  1316. package/dist/esm/core/resources/calendar-date-fields.frontend.utils.js.map +1 -0
  1317. package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts +23 -0
  1318. package/dist/esm/core/resources/caller-identity-record.frontend.utils.d.ts.map +1 -0
  1319. package/dist/esm/core/resources/caller-identity-record.frontend.utils.js +26 -0
  1320. package/dist/esm/core/resources/caller-identity-record.frontend.utils.js.map +1 -0
  1321. package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts +1 -1
  1322. package/dist/esm/core/resources/collection-export-url.frontend.utils.d.ts.map +1 -1
  1323. package/dist/esm/core/resources/collection-export-url.frontend.utils.js +34 -16
  1324. package/dist/esm/core/resources/collection-export-url.frontend.utils.js.map +1 -1
  1325. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts +54 -11
  1326. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.d.ts.map +1 -1
  1327. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js +131 -63
  1328. package/dist/esm/core/resources/collection-filter-presets.frontend.utils.js.map +1 -1
  1329. package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts +58 -0
  1330. package/dist/esm/core/resources/date-filter-window.frontend.utils.d.ts.map +1 -0
  1331. package/dist/esm/core/resources/date-filter-window.frontend.utils.js +70 -0
  1332. package/dist/esm/core/resources/date-filter-window.frontend.utils.js.map +1 -0
  1333. package/dist/esm/core/resources/frontend-resource.utils.d.ts +146 -7
  1334. package/dist/esm/core/resources/frontend-resource.utils.d.ts.map +1 -1
  1335. package/dist/esm/core/resources/frontend-resource.utils.js +194 -22
  1336. package/dist/esm/core/resources/frontend-resource.utils.js.map +1 -1
  1337. package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts +18 -4
  1338. package/dist/esm/core/resources/hooks/useOperationEnabled.d.ts.map +1 -1
  1339. package/dist/esm/core/resources/hooks/useOperationEnabled.js +26 -6
  1340. package/dist/esm/core/resources/hooks/useOperationEnabled.js.map +1 -1
  1341. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts +95 -2
  1342. package/dist/esm/core/resources/operation-semantics.frontend.utils.d.ts.map +1 -1
  1343. package/dist/esm/core/resources/operation-semantics.frontend.utils.js +126 -13
  1344. package/dist/esm/core/resources/operation-semantics.frontend.utils.js.map +1 -1
  1345. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts +45 -0
  1346. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.d.ts.map +1 -0
  1347. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js +46 -0
  1348. package/dist/esm/core/resources/read-through-organization-unit.frontend.utils.js.map +1 -0
  1349. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts +46 -0
  1350. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.d.ts.map +1 -0
  1351. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js +86 -0
  1352. package/dist/esm/core/resources/referenced-record-scope.frontend.utils.js.map +1 -0
  1353. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.d.ts.map +1 -1
  1354. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js +5 -1
  1355. package/dist/esm/core/resources/relationship-quick-create.frontend.utils.js.map +1 -1
  1356. package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts +28 -1
  1357. package/dist/esm/core/resources/resource-addressability.frontend.utils.d.ts.map +1 -1
  1358. package/dist/esm/core/resources/resource-addressability.frontend.utils.js +43 -3
  1359. package/dist/esm/core/resources/resource-addressability.frontend.utils.js.map +1 -1
  1360. package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts +26 -0
  1361. package/dist/esm/core/resources/resource-discriminators.frontend.utils.d.ts.map +1 -0
  1362. package/dist/esm/core/resources/resource-discriminators.frontend.utils.js +37 -0
  1363. package/dist/esm/core/resources/resource-discriminators.frontend.utils.js.map +1 -0
  1364. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts +40 -8
  1365. package/dist/esm/core/resources/resources-repository.frontend.service.d.ts.map +1 -1
  1366. package/dist/esm/core/resources/resources-repository.frontend.service.js +333 -73
  1367. package/dist/esm/core/resources/resources-repository.frontend.service.js.map +1 -1
  1368. package/dist/esm/core/resources/resources.frontend.schemas.d.ts +175 -65
  1369. package/dist/esm/core/resources/resources.frontend.schemas.d.ts.map +1 -1
  1370. package/dist/esm/core/resources/resources.frontend.schemas.js +245 -75
  1371. package/dist/esm/core/resources/resources.frontend.schemas.js.map +1 -1
  1372. package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts +9 -1
  1373. package/dist/esm/core/resources/rmm/HttpTransportAdapter.d.ts.map +1 -1
  1374. package/dist/esm/core/resources/rmm/HttpTransportAdapter.js +57 -22
  1375. package/dist/esm/core/resources/rmm/HttpTransportAdapter.js.map +1 -1
  1376. package/dist/esm/core/resources/rmm/RMMRegistry.d.ts.map +1 -1
  1377. package/dist/esm/core/resources/rmm/RMMRegistry.js +1 -0
  1378. package/dist/esm/core/resources/rmm/RMMRegistry.js.map +1 -1
  1379. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts +3 -0
  1380. package/dist/esm/core/resources/rmm/ResourceMutationManager.d.ts.map +1 -1
  1381. package/dist/esm/core/resources/rmm/ResourceMutationManager.js +94 -35
  1382. package/dist/esm/core/resources/rmm/ResourceMutationManager.js.map +1 -1
  1383. package/dist/esm/core/resources/rmm/types.d.ts +58 -6
  1384. package/dist/esm/core/resources/rmm/types.d.ts.map +1 -1
  1385. package/dist/esm/core/resources/rmm/types.js +17 -0
  1386. package/dist/esm/core/resources/rmm/types.js.map +1 -1
  1387. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts +43 -6
  1388. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.d.ts.map +1 -1
  1389. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js +49 -6
  1390. package/dist/esm/core/resources/rmm/update-like-mutation-fallback.frontend.js.map +1 -1
  1391. package/dist/esm/core/resources/rmm/useResourceMutationManager.d.ts.map +1 -1
  1392. package/dist/esm/core/resources/rmm/useResourceMutationManager.js +2 -0
  1393. package/dist/esm/core/resources/rmm/useResourceMutationManager.js.map +1 -1
  1394. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts +2 -0
  1395. package/dist/esm/core/resources/rmm/useResourceRMM.d.ts.map +1 -1
  1396. package/dist/esm/core/resources/rmm/useResourceRMM.js +10 -3
  1397. package/dist/esm/core/resources/rmm/useResourceRMM.js.map +1 -1
  1398. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts +22 -0
  1399. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.d.ts.map +1 -0
  1400. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js +31 -0
  1401. package/dist/esm/core/resources/temporal-day-groups.frontend.utils.js.map +1 -0
  1402. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts +36 -0
  1403. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.d.ts.map +1 -0
  1404. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js +88 -0
  1405. package/dist/esm/core/resources/ui-behavior-presentation.frontend.utils.js.map +1 -0
  1406. package/dist/esm/core/resources/useBulkJobProgress.d.ts +6 -0
  1407. package/dist/esm/core/resources/useBulkJobProgress.d.ts.map +1 -1
  1408. package/dist/esm/core/resources/useBulkJobProgress.js +1 -0
  1409. package/dist/esm/core/resources/useBulkJobProgress.js.map +1 -1
  1410. package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts +14 -0
  1411. package/dist/esm/core/resources/useCollectionFilterPresetScope.d.ts.map +1 -0
  1412. package/dist/esm/core/resources/useCollectionFilterPresetScope.js +29 -0
  1413. package/dist/esm/core/resources/useCollectionFilterPresetScope.js.map +1 -0
  1414. package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts +7 -6
  1415. package/dist/esm/core/resources/useHostlessResourceNavigation.d.ts.map +1 -1
  1416. package/dist/esm/core/resources/useHostlessResourceNavigation.js +35 -21
  1417. package/dist/esm/core/resources/useHostlessResourceNavigation.js.map +1 -1
  1418. package/dist/esm/core/resources/useOperationDirectExecution.d.ts.map +1 -1
  1419. package/dist/esm/core/resources/useOperationDirectExecution.js +25 -10
  1420. package/dist/esm/core/resources/useOperationDirectExecution.js.map +1 -1
  1421. package/dist/esm/core/resources/useRecordSharing.d.ts +58 -0
  1422. package/dist/esm/core/resources/useRecordSharing.d.ts.map +1 -0
  1423. package/dist/esm/core/resources/useRecordSharing.js +220 -0
  1424. package/dist/esm/core/resources/useRecordSharing.js.map +1 -0
  1425. package/dist/esm/core/resources/useResourceLabels.d.ts +4 -1
  1426. package/dist/esm/core/resources/useResourceLabels.d.ts.map +1 -1
  1427. package/dist/esm/core/resources/useResourceLabels.js +31 -32
  1428. package/dist/esm/core/resources/useResourceLabels.js.map +1 -1
  1429. package/dist/esm/core/resources/useResourceOperationActions.d.ts +23 -4
  1430. package/dist/esm/core/resources/useResourceOperationActions.d.ts.map +1 -1
  1431. package/dist/esm/core/resources/useResourceOperationActions.js +219 -51
  1432. package/dist/esm/core/resources/useResourceOperationActions.js.map +1 -1
  1433. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts +10 -1
  1434. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.d.ts.map +1 -1
  1435. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js +7 -2
  1436. package/dist/esm/core/resources/useResourceOperationOutcomeEmitter.js.map +1 -1
  1437. package/dist/esm/core/resources/useResourceOperationSurface.d.ts +5 -5
  1438. package/dist/esm/core/resources/useResourceOperationSurface.d.ts.map +1 -1
  1439. package/dist/esm/core/resources/useResourceOperationSurface.js +5 -4
  1440. package/dist/esm/core/resources/useResourceOperationSurface.js.map +1 -1
  1441. package/dist/esm/core/resources/useResourceSelection.d.ts +6 -0
  1442. package/dist/esm/core/resources/useResourceSelection.d.ts.map +1 -1
  1443. package/dist/esm/core/resources/useResourceSelection.js.map +1 -1
  1444. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts +47 -0
  1445. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.d.ts.map +1 -1
  1446. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js +117 -4
  1447. package/dist/esm/core/resources/utils/operation-enabled-condition.frontend.utils.js.map +1 -1
  1448. package/dist/esm/core/runtime/AppRouter.d.ts.map +1 -1
  1449. package/dist/esm/core/runtime/AppRouter.js +5 -2
  1450. package/dist/esm/core/runtime/AppRouter.js.map +1 -1
  1451. package/dist/esm/core/runtime/ApplicationMainContext.d.ts +10 -1
  1452. package/dist/esm/core/runtime/ApplicationMainContext.d.ts.map +1 -1
  1453. package/dist/esm/core/runtime/ApplicationMainContext.js +17 -2
  1454. package/dist/esm/core/runtime/ApplicationMainContext.js.map +1 -1
  1455. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts +5 -0
  1456. package/dist/esm/core/runtime/domain-module.frontend.definitions.d.ts.map +1 -1
  1457. package/dist/esm/core/runtime/domain-module.frontend.definitions.js +4 -2
  1458. package/dist/esm/core/runtime/domain-module.frontend.definitions.js.map +1 -1
  1459. package/dist/esm/core/runtime/routes.frontend.definitions.d.ts +19 -3
  1460. package/dist/esm/core/runtime/routes.frontend.definitions.d.ts.map +1 -1
  1461. package/dist/esm/core/runtime/routes.frontend.definitions.js +23 -7
  1462. package/dist/esm/core/runtime/routes.frontend.definitions.js.map +1 -1
  1463. package/dist/esm/core/runtime/start-application.frontend.service.d.ts.map +1 -1
  1464. package/dist/esm/core/runtime/start-application.frontend.service.js +3 -1
  1465. package/dist/esm/core/runtime/start-application.frontend.service.js.map +1 -1
  1466. package/dist/esm/core/scope/AppScopeContext.d.ts +7 -2
  1467. package/dist/esm/core/scope/AppScopeContext.d.ts.map +1 -1
  1468. package/dist/esm/core/scope/AppScopeContext.js +56 -10
  1469. package/dist/esm/core/scope/AppScopeContext.js.map +1 -1
  1470. package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts +23 -0
  1471. package/dist/esm/core/security/ApplicationRoleTablesContext.d.ts.map +1 -0
  1472. package/dist/esm/core/security/ApplicationRoleTablesContext.js +27 -0
  1473. package/dist/esm/core/security/ApplicationRoleTablesContext.js.map +1 -0
  1474. package/dist/esm/core/security/AuthSessionContext.d.ts +26 -8
  1475. package/dist/esm/core/security/AuthSessionContext.d.ts.map +1 -1
  1476. package/dist/esm/core/security/AuthSessionContext.js +81 -17
  1477. package/dist/esm/core/security/AuthSessionContext.js.map +1 -1
  1478. package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts +13 -0
  1479. package/dist/esm/core/security/RouteOrganizationDecisionContext.d.ts.map +1 -0
  1480. package/dist/esm/core/security/RouteOrganizationDecisionContext.js +12 -0
  1481. package/dist/esm/core/security/RouteOrganizationDecisionContext.js.map +1 -0
  1482. package/dist/esm/core/security/StepUpAuthContext.js +5 -5
  1483. package/dist/esm/core/security/StepUpAuthContext.js.map +1 -1
  1484. package/dist/esm/core/security/UserOrgsContext.d.ts +13 -0
  1485. package/dist/esm/core/security/UserOrgsContext.d.ts.map +1 -1
  1486. package/dist/esm/core/security/UserOrgsContext.js +272 -103
  1487. package/dist/esm/core/security/UserOrgsContext.js.map +1 -1
  1488. package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts +1 -0
  1489. package/dist/esm/core/security/auth-redirect.frontend.utils.d.ts.map +1 -1
  1490. package/dist/esm/core/security/auth-redirect.frontend.utils.js +3 -2
  1491. package/dist/esm/core/security/auth-redirect.frontend.utils.js.map +1 -1
  1492. package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts +43 -0
  1493. package/dist/esm/core/security/effective-permissions.frontend.utils.d.ts.map +1 -0
  1494. package/dist/esm/core/security/effective-permissions.frontend.utils.js +73 -0
  1495. package/dist/esm/core/security/effective-permissions.frontend.utils.js.map +1 -0
  1496. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts +175 -5
  1497. package/dist/esm/core/security/route-organization-access.frontend.utils.d.ts.map +1 -1
  1498. package/dist/esm/core/security/route-organization-access.frontend.utils.js +147 -6
  1499. package/dist/esm/core/security/route-organization-access.frontend.utils.js.map +1 -1
  1500. package/dist/esm/core/security/security.frontend.schemas.d.ts +17 -5
  1501. package/dist/esm/core/security/security.frontend.schemas.d.ts.map +1 -1
  1502. package/dist/esm/core/security/security.frontend.schemas.js +0 -5
  1503. package/dist/esm/core/security/security.frontend.schemas.js.map +1 -1
  1504. package/dist/esm/core/security/useApplicationRoleTables.d.ts +3 -0
  1505. package/dist/esm/core/security/useApplicationRoleTables.d.ts.map +1 -0
  1506. package/dist/esm/core/security/useApplicationRoleTables.js +11 -0
  1507. package/dist/esm/core/security/useApplicationRoleTables.js.map +1 -0
  1508. package/dist/esm/core/security/useRouteOrganizationAccess.d.ts +9 -0
  1509. package/dist/esm/core/security/useRouteOrganizationAccess.d.ts.map +1 -1
  1510. package/dist/esm/core/security/useRouteOrganizationAccess.js +31 -10
  1511. package/dist/esm/core/security/useRouteOrganizationAccess.js.map +1 -1
  1512. package/dist/esm/core/security/useRouteOrganizationFollow.d.ts +24 -0
  1513. package/dist/esm/core/security/useRouteOrganizationFollow.d.ts.map +1 -0
  1514. package/dist/esm/core/security/useRouteOrganizationFollow.js +76 -0
  1515. package/dist/esm/core/security/useRouteOrganizationFollow.js.map +1 -0
  1516. package/dist/esm/core/ui/UIContext.d.ts +25 -2
  1517. package/dist/esm/core/ui/UIContext.d.ts.map +1 -1
  1518. package/dist/esm/core/ui/UIContext.js +49 -37
  1519. package/dist/esm/core/ui/UIContext.js.map +1 -1
  1520. package/dist/esm/core/ui/design-token.utils.d.ts +0 -11
  1521. package/dist/esm/core/ui/design-token.utils.d.ts.map +1 -1
  1522. package/dist/esm/core/ui/design-token.utils.js +51 -83
  1523. package/dist/esm/core/ui/design-token.utils.js.map +1 -1
  1524. package/dist/esm/core/ui/themes/default.theme.d.ts.map +1 -1
  1525. package/dist/esm/core/ui/themes/default.theme.js +151 -59
  1526. package/dist/esm/core/ui/themes/default.theme.js.map +1 -1
  1527. package/dist/esm/core/ui/themes/focus-indicator.d.ts +221 -0
  1528. package/dist/esm/core/ui/themes/focus-indicator.d.ts.map +1 -0
  1529. package/dist/esm/core/ui/themes/focus-indicator.js +229 -0
  1530. package/dist/esm/core/ui/themes/focus-indicator.js.map +1 -0
  1531. package/dist/esm/core/ui/ui.frontend.schemas.d.ts +7 -0
  1532. package/dist/esm/core/ui/ui.frontend.schemas.d.ts.map +1 -1
  1533. package/dist/esm/core/ui/useThemePreferenceControl.d.ts.map +1 -1
  1534. package/dist/esm/core/ui/useThemePreferenceControl.js +1 -2
  1535. package/dist/esm/core/ui/useThemePreferenceControl.js.map +1 -1
  1536. package/dist/esm/index.d.ts +34 -0
  1537. package/dist/esm/index.d.ts.map +1 -1
  1538. package/dist/esm/index.js +45 -7
  1539. package/dist/esm/index.js.map +1 -1
  1540. package/dist/esm/tailwind/index.d.ts.map +1 -1
  1541. package/dist/esm/tailwind/index.js +3 -0
  1542. package/dist/esm/tailwind/index.js.map +1 -1
  1543. package/dist/esm/testing/app-shell-placement-coverage.d.ts.map +1 -1
  1544. package/dist/esm/testing/app-shell-placement-coverage.js +6 -2
  1545. package/dist/esm/testing/app-shell-placement-coverage.js.map +1 -1
  1546. package/dist/esm/testing/mock-builders.d.ts +13 -1
  1547. package/dist/esm/testing/mock-builders.d.ts.map +1 -1
  1548. package/dist/esm/testing/mock-builders.js +35 -1
  1549. package/dist/esm/testing/mock-builders.js.map +1 -1
  1550. package/dist/esm/testing/rmm-helpers.d.ts +5 -3
  1551. package/dist/esm/testing/rmm-helpers.d.ts.map +1 -1
  1552. package/dist/esm/testing/rmm-helpers.js +3 -0
  1553. package/dist/esm/testing/rmm-helpers.js.map +1 -1
  1554. package/dist/esm/testing/test-providers.d.ts.map +1 -1
  1555. package/dist/esm/testing/test-providers.js +3 -0
  1556. package/dist/esm/testing/test-providers.js.map +1 -1
  1557. package/package.json +7 -6
  1558. package/dist/esm/components/flows-actors/flow-node.d.ts +0 -28
  1559. package/dist/esm/components/flows-actors/flow-node.d.ts.map +0 -1
  1560. package/dist/esm/components/flows-actors/flow-node.js +0 -115
  1561. package/dist/esm/components/flows-actors/flow-node.js.map +0 -1
  1562. package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts +0 -30
  1563. package/dist/esm/components/resources/CollectionSelectionHeaderRail.d.ts.map +0 -1
  1564. package/dist/esm/components/resources/CollectionSelectionHeaderRail.js +0 -17
  1565. package/dist/esm/components/resources/CollectionSelectionHeaderRail.js.map +0 -1
  1566. package/dist/tsconfig.build.tsbuildinfo +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"line-family.builder.js","sourceRoot":"","sources":["../../../../../../../../src/components/views/chart-view/option-builder/builders/line-family.builder.ts"],"names":[],"mappings":"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","sourcesContent":["/** Line family builder: LINE, AREA, STACKED_AREA, STEP_LINE\n * \n * Supports:\n * - Basic line/area series\n * - splitByDimension with colorMap, order, exclude, labelMap\n * - Densified row styling (_filled: true → separate dashed overlay series)\n * - Time dimension auto-detection (type: 'time' axis)\n *\n * Densified styling strategy:\n * ECharts does NOT support per-data-point lineStyle — only itemStyle works per point.\n * To render dashed segments for densified (filled) data, we split the data into two\n * series at the series level: a \"real data\" series (solid) and a \"filled data\" overlay\n * (dashed, lower opacity). The overlay uses the same color but with `lineStyle: { type: 'dashed' }`.\n * Both share the same stack (for stacked charts) and are connected visually.\n *\n * Configurable via chartTypeConfig (ChartTypeConfig_Line):\n * - symbolVisibilityThreshold: max data points before auto-hiding symbols\n * - densifiedOverlay: { itemOpacity, lineOpacity, lineWidth, areaOpacity }\n *\n * Configurable via series style (ChartSeriesStyle):\n * - step: 'start' | 'middle' | 'end'\n * - connectNulls: boolean\n */\n\nimport { ChartType } from '@wildo-ai/saas-models';\nimport type { ChartSeriesDefinition, AggregationQueryResponseRow, ChartTypeConfig_Line } from '@wildo-ai/saas-models';\nimport type { ChartTypeBuilder, ChartBuildContext, ChartBuildResult } from '~wildo-frontend-lib/components/views/chart-view/option-builder/chart-type-builder.interface';\nimport {\n getPrimaryDimensionRef,\n extractDimensionValues,\n extractMeasureValues,\n areAllSeriesMeasuresIntegerValued,\n buildCategoryXAxis,\n buildValueYAxis,\n formatTimeBucketLabel,\n buildTimeAxisLabelDisplayFormatter,\n getResolvedTimezone,\n resolveSeriesColor,\n resolveSeriesName,\n applySeriesStyle,\n getSplitValues,\n resolveSplitColor,\n resolveSplitLabel,\n isFilledRow,\n hasDensifiedRows,\n} from '~wildo-frontend-lib/components/views/chart-view/option-builder/builder-utils';\n\nexport class LineFamilyBuilder implements ChartTypeBuilder {\n supportedTypes = [ChartType.LINE, ChartType.AREA, ChartType.STACKED_AREA, ChartType.STEP_LINE];\n\n /** Temporarily holds the i18n resolver during a build() call */\n private _t?: (key: string) => string;\n\n build(ctx: ChartBuildContext, seriesDefs: ChartSeriesDefinition[]): ChartBuildResult {\n this._t = ctx.t;\n const dimRef = getPrimaryDimensionRef(ctx);\n const chartType = ctx.definition.chartType;\n const isArea = chartType === ChartType.AREA || chartType === ChartType.STACKED_AREA;\n const isStacked = chartType === ChartType.STACKED_AREA;\n const isStep = chartType === ChartType.STEP_LINE;\n const cfg = (ctx.definition.chartTypeConfig ?? {}) as ChartTypeConfig_Line;\n\n // Check if first dimension is a time dimension\n const firstDim = ctx.definition.dataQuery.dimensions[0];\n const isTimeDimension = !!firstDim?.timeGranularity;\n\n // Pre-compute category values for split-by / time-bucket alignment.\n // For a time dimension these are the raw ISO bucket instants (the alignment\n // keys); series values index into them and the axis shows timezone-correct\n // formatted labels for the same order. A time dimension therefore aligns\n // exactly like a category dimension — one shared path, no `type:'time'` axis\n // (ECharts would re-parse the UTC instants in the browser's timezone).\n const allCategories = extractDimensionValues(ctx.response.data, dimRef).map(String);\n const uniqueCategories = [...new Set(allCategories)];\n\n // The axis keyspace must match what the SERIES key on: split sub-series map\n // over the UNIQUE categories, while a non-split series is emitted in raw row\n // order (`extractMeasureValues`). Mirroring bar-family, the time axis uses the\n // unique set only when splitting and the raw in-order set otherwise, so axis\n // and series stay index-aligned unconditionally (not merely because a\n // `$group`-by-bucket happens to emit one row per bucket).\n const hasSplit = seriesDefs.some(s => s.splitByDimension);\n const timeAxisKeys = hasSplit ? uniqueCategories : allCategories;\n const timeDisplayFormatter = buildTimeAxisLabelDisplayFormatter(firstDim?.timeGranularity);\n const xAxis = isTimeDimension\n ? {\n type: 'category' as const,\n data: timeAxisKeys.map(c => formatTimeBucketLabel(c, firstDim?.timeGranularity, getResolvedTimezone(ctx))),\n axisLabel: {\n hideOverlap: ctx.chartStylePreset.axis.hideOverlap ?? true,\n // Display-only: DAY/WEEK keys re-render as locale-driven \"Aug 14\".\n ...(timeDisplayFormatter ? { formatter: timeDisplayFormatter } : {}),\n },\n }\n : buildCategoryXAxis(ctx.response.data, dimRef, ctx.chartStylePreset, ctx.dimensionEnumLabels?.[dimRef]);\n // Resolve Y axis label via i18n if available\n const yAxisLabel = ctx.definition.i18n?.yAxisLabelKey\n ? (() => { const r = ctx.t(ctx.definition.i18n!.yAxisLabelKey!); return r !== ctx.definition.i18n!.yAxisLabelKey! ? r : undefined; })()\n : undefined;\n const yAxis = buildValueYAxis(yAxisLabel, ctx.chartStylePreset, {\n integerValued: areAllSeriesMeasuresIntegerValued(ctx, seriesDefs),\n });\n\n // Detect if we need densified overlay handling\n const needsDensifiedOverlay = hasDensifiedRows(ctx.response.data);\n\n const echartsSeriesList: unknown[] = [];\n\n for (let i = 0; i < seriesDefs.length; i++) {\n const sDef = seriesDefs[i];\n\n if (sDef.splitByDimension) {\n // Generate sub-series per split dimension value, each aligned to the full\n // category/bucket axis (index-aligned values; missing buckets are gaps).\n const splitValues = getSplitValues(ctx.response.data, sDef.splitByDimension, sDef);\n\n for (let j = 0; j < splitValues.length; j++) {\n const splitVal = splitValues[j];\n const color = resolveSplitColor(splitVal, j, sDef, ctx.colorPalette, ctx.dimensionEnumColors[sDef.splitByDimension!]);\n const seriesName = resolveSplitLabel(splitVal, sDef, ctx, sDef.splitByDimension);\n\n const { realValues, filledValues } = this.buildCategorySplitDataWithOverlay(\n ctx, sDef, dimRef, splitVal, uniqueCategories,\n );\n\n const mainItem = this.buildLineItem(seriesName, realValues, color, isArea, isStacked, isStep, sDef, cfg);\n echartsSeriesList.push(mainItem);\n\n if (filledValues.some(v => v !== null)) {\n const overlayItem = this.buildDashedOverlayItem(\n seriesName, filledValues, color, isArea, isStacked, isStep, sDef, cfg,\n );\n echartsSeriesList.push(overlayItem);\n }\n }\n } else {\n // No split-by: standard single series, index-aligned to uniqueCategories.\n const color = resolveSeriesColor(sDef, i, ctx.colorPalette);\n const sName = resolveSeriesName(sDef, ctx.t);\n\n if (needsDensifiedOverlay) {\n // Densified (time) series → split into a solid real series + a dashed\n // filled overlay, both index-aligned to the bucket axis.\n const { realValues, filledValues } = this.buildDensifiedValueSeries(\n ctx.response.data, dimRef, sDef.measureRef, uniqueCategories,\n );\n\n const mainItem = this.buildLineItem(sName, realValues, color, isArea, isStacked, isStep, sDef, cfg);\n mainItem.yAxisIndex = sDef.yAxisIndex;\n mainItem.connectNulls = sDef.style?.connectNulls ?? false;\n echartsSeriesList.push(mainItem);\n\n if (filledValues.some(v => v !== null)) {\n const overlayItem = this.buildDashedOverlayItem(sName, filledValues, color, isArea, isStacked, isStep, sDef, cfg);\n overlayItem.yAxisIndex = sDef.yAxisIndex;\n overlayItem.connectNulls = false;\n echartsSeriesList.push(overlayItem);\n }\n } else {\n const values = extractMeasureValues(ctx.response.data, sDef.measureRef);\n const item = this.buildLineItem(sName, values, color, isArea, isStacked, isStep, sDef, cfg);\n item.yAxisIndex = sDef.yAxisIndex;\n echartsSeriesList.push(item);\n }\n }\n }\n\n return {\n series: echartsSeriesList,\n xAxis,\n yAxis,\n };\n }\n\n // ── Core series item builder ─────────────────────────────\n\n private buildLineItem(\n name: string | undefined,\n data: unknown[],\n color: string,\n isArea: boolean,\n isStacked: boolean,\n isStep: boolean,\n sDef: ChartSeriesDefinition,\n cfg: ChartTypeConfig_Line,\n ): Record<string, unknown> {\n const threshold = cfg.symbolVisibilityThreshold ?? 30;\n const item: Record<string, unknown> = {\n type: 'line',\n name,\n data,\n itemStyle: { color },\n lineStyle: { color },\n showSymbol: data.length <= threshold,\n };\n this.applyLineVariant(item, isArea, isStacked, isStep, sDef);\n applySeriesStyle(item, sDef);\n return item;\n }\n\n // ── Dashed overlay for densified segments ─────────────────\n\n private buildDashedOverlayItem(\n baseName: string | undefined,\n data: unknown[],\n color: string,\n isArea: boolean,\n isStacked: boolean,\n isStep: boolean,\n sDef: ChartSeriesDefinition,\n cfg: ChartTypeConfig_Line,\n ): Record<string, unknown> {\n const overlay = cfg.densifiedOverlay;\n // Resolve the overlay name suffix via i18n key if configured\n const overlaySuffix = cfg.densifiedOverlayNameKey\n ? (() => { const r = this._t?.(cfg.densifiedOverlayNameKey!); return r && r !== cfg.densifiedOverlayNameKey ? r : '(filled)'; })()\n : '(filled)';\n const item: Record<string, unknown> = {\n type: 'line',\n name: baseName ? `${baseName} ${overlaySuffix}` : overlaySuffix,\n data,\n itemStyle: { color, opacity: overlay?.itemOpacity ?? 0.4 },\n lineStyle: { color, type: overlay?.lineType ?? 'dashed', opacity: overlay?.lineOpacity ?? 0.5, width: overlay?.lineWidth ?? 1 },\n showSymbol: overlay?.showSymbol ?? false,\n legendHoverLink: false,\n emphasis: { disabled: true },\n };\n\n if (isArea || isStacked) {\n item.areaStyle = { opacity: overlay?.areaOpacity ?? 0.1 };\n }\n if (isStacked) {\n item.stack = 'stack';\n }\n if (isStep) {\n item.step = sDef.style?.step ?? 'start';\n }\n\n return item;\n }\n\n // ── Densified (non-split) value series with overlay separation ──\n\n /**\n * Split a densified single (non-split) series into index-aligned real +\n * filled value arrays over the ordered bucket keys. Mirrors\n * {@link buildCategorySplitDataWithOverlay} for the no-split case: filled\n * buckets carry the value in `filledValues` (dashed overlay) and `null` in\n * `realValues`; real buckets adjacent to a filled one are bridged into\n * `filledValues` so the dashed overlay connects continuously across gaps.\n */\n private buildDensifiedValueSeries(\n rows: AggregationQueryResponseRow[],\n dimRef: string,\n measureRef: string,\n orderedKeys: string[],\n ): { realValues: (number | null)[]; filledValues: (number | null)[] } {\n const valueMap = new Map<string, number | null>();\n const filledMap = new Map<string, boolean>();\n\n for (const row of rows) {\n const cat = String(row[dimRef]);\n const val = row[measureRef];\n valueMap.set(cat, val == null ? null : (typeof val === 'number' ? val : Number(val)));\n filledMap.set(cat, isFilledRow(row));\n }\n\n const realValues: (number | null)[] = [];\n const filledValues: (number | null)[] = [];\n\n for (let i = 0; i < orderedKeys.length; i++) {\n const cat = orderedKeys[i];\n const val = valueMap.get(cat) ?? null;\n const filled = filledMap.get(cat) ?? false;\n\n if (filled) {\n realValues.push(null);\n filledValues.push(val);\n } else {\n realValues.push(val);\n const prevFilled = i > 0 && (filledMap.get(orderedKeys[i - 1]) ?? false);\n const nextFilled = i < orderedKeys.length - 1 && (filledMap.get(orderedKeys[i + 1]) ?? false);\n filledValues.push((prevFilled || nextFilled) ? val : null);\n }\n }\n\n return { realValues, filledValues };\n }\n\n // ── Category split data with overlay separation ───────────\n\n private buildCategorySplitDataWithOverlay(\n ctx: ChartBuildContext,\n sDef: ChartSeriesDefinition,\n dimRef: string,\n splitVal: string,\n uniqueCategories: string[],\n ): { realValues: (number | null)[]; filledValues: (number | null)[] } {\n const categoryValueMap = new Map<string, number>();\n const categoryFilledMap = new Map<string, boolean>();\n\n for (const row of ctx.response.data) {\n if (String(row[sDef.splitByDimension!]) === splitVal) {\n const cat = String(row[dimRef]);\n const val = row[sDef.measureRef];\n categoryValueMap.set(cat, typeof val === 'number' ? val : Number(val) || 0);\n categoryFilledMap.set(cat, isFilledRow(row));\n }\n }\n\n const realValues: (number | null)[] = [];\n const filledValues: (number | null)[] = [];\n\n for (let i = 0; i < uniqueCategories.length; i++) {\n const cat = uniqueCategories[i];\n const val = categoryValueMap.get(cat) ?? null;\n const filled = categoryFilledMap.get(cat) ?? false;\n\n if (filled) {\n realValues.push(null);\n filledValues.push(val);\n } else {\n realValues.push(val);\n const prevFilled = i > 0 && (categoryFilledMap.get(uniqueCategories[i - 1]) ?? false);\n const nextFilled = i < uniqueCategories.length - 1 && (categoryFilledMap.get(uniqueCategories[i + 1]) ?? false);\n filledValues.push((prevFilled || nextFilled) ? val : null);\n }\n }\n\n return { realValues, filledValues };\n }\n\n // ── Line variant application ─────────────────────────────\n\n private applyLineVariant(\n item: Record<string, unknown>,\n isArea: boolean,\n isStacked: boolean,\n isStep: boolean,\n sDef: ChartSeriesDefinition,\n ): void {\n if (isArea) {\n item.areaStyle = { opacity: sDef.style?.areaOpacity ?? 0.3 };\n }\n if (isStacked) {\n item.stack = 'stack';\n item.areaStyle = { opacity: sDef.style?.areaOpacity ?? 0.3 };\n }\n if (isStep) {\n item.step = sDef.style?.step ?? 'start';\n }\n }\n}\n"]}
1
+ {"version":3,"file":"line-family.builder.js","sourceRoot":"","sources":["../../../../../../../../src/components/views/chart-view/option-builder/builders/line-family.builder.ts"],"names":[],"mappings":"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","sourcesContent":["/** Line family builder: LINE, AREA, STACKED_AREA, STEP_LINE\n * \n * Supports:\n * - Basic line/area series\n * - splitByDimension with colorMap, order, exclude, labelMap\n * - Densified row styling (_filled: true → separate dashed overlay series)\n * - Time dimension auto-detection (type: 'time' axis)\n *\n * Densified styling strategy:\n * ECharts does NOT support per-data-point lineStyle — only itemStyle works per point.\n * To render dashed segments for densified (filled) data, we split the data into two\n * series at the series level: a \"real data\" series (solid) and a \"filled data\" overlay\n * (dashed, lower opacity). The overlay uses the same color but with `lineStyle: { type: 'dashed' }`.\n * Both share the same stack (for stacked charts) and are connected visually.\n *\n * Configurable via chartTypeConfig (ChartTypeConfig_Line):\n * - symbolVisibilityThreshold: max data points before auto-hiding symbols\n * - densifiedOverlay: { itemOpacity, lineOpacity, lineWidth, areaOpacity }\n *\n * Configurable via series style (ChartSeriesStyle):\n * - step: 'start' | 'middle' | 'end'\n * - connectNulls: boolean\n */\n\nimport { ChartType } from '@wildo-ai/saas-models';\nimport type { ChartSeriesDefinition, AggregationQueryResponseRow, ChartTypeConfig_Line } from '@wildo-ai/saas-models';\nimport type { ChartTypeBuilder, ChartBuildContext, ChartBuildResult } from '~wildo-frontend-lib/components/views/chart-view/option-builder/chart-type-builder.interface';\nimport {\n getPrimaryDimensionRef,\n extractDimensionValues,\n extractMeasureValues,\n areAllSeriesMeasuresIntegerValued,\n buildCategoryXAxis,\n buildValueYAxis,\n formatTimeBucketLabel,\n buildTimeAxisLabelDisplayFormatter,\n getResolvedTimezone,\n resolveSeriesColor,\n resolveSeriesName,\n applySeriesStyle,\n getSplitValues,\n resolveSplitColor,\n resolveSplitLabel,\n isFilledRow,\n hasDensifiedRows,\n} from '~wildo-frontend-lib/components/views/chart-view/option-builder/builder-utils';\n\nexport class LineFamilyBuilder implements ChartTypeBuilder {\n supportedTypes = [ChartType.LINE, ChartType.AREA, ChartType.STACKED_AREA, ChartType.STEP_LINE];\n\n /** Temporarily holds the i18n resolver during a build() call */\n private _t?: (key: string) => string;\n\n build(ctx: ChartBuildContext, seriesDefs: ChartSeriesDefinition[]): ChartBuildResult {\n this._t = ctx.t;\n const dimRef = getPrimaryDimensionRef(ctx);\n const chartType = ctx.definition.chartType;\n const isArea = chartType === ChartType.AREA || chartType === ChartType.STACKED_AREA;\n const isStacked = chartType === ChartType.STACKED_AREA;\n const isStep = chartType === ChartType.STEP_LINE;\n const cfg = (ctx.definition.chartTypeConfig ?? {}) as ChartTypeConfig_Line;\n\n // Check if first dimension is a time dimension\n const firstDim = ctx.definition.dataQuery.dimensions[0];\n const isTimeDimension = !!firstDim?.timeGranularity;\n\n // Pre-compute category values for split-by / time-bucket alignment.\n // For a time dimension these are the raw ISO bucket instants (the alignment\n // keys); series values index into them and the axis shows timezone-correct\n // formatted labels for the same order. A time dimension therefore aligns\n // exactly like a category dimension — one shared path, no `type:'time'` axis\n // (ECharts would re-parse the UTC instants in the browser's timezone).\n const allCategories = extractDimensionValues(ctx.response.data, dimRef).map(String);\n const uniqueCategories = [...new Set(allCategories)];\n\n // The axis keyspace must match what the SERIES key on: split sub-series map\n // over the UNIQUE categories, while a non-split series is emitted in raw row\n // order (`extractMeasureValues`). Mirroring bar-family, the time axis uses the\n // unique set only when splitting and the raw in-order set otherwise, so axis\n // and series stay index-aligned unconditionally (not merely because a\n // `$group`-by-bucket happens to emit one row per bucket).\n const hasSplit = seriesDefs.some(s => s.splitByDimension);\n const timeAxisKeys = hasSplit ? uniqueCategories : allCategories;\n const timeDisplayFormatter = buildTimeAxisLabelDisplayFormatter(firstDim?.timeGranularity, ctx.locale);\n const xAxis = isTimeDimension\n ? {\n type: 'category' as const,\n data: timeAxisKeys.map(c => formatTimeBucketLabel(c, firstDim?.timeGranularity, getResolvedTimezone(ctx))),\n axisLabel: {\n hideOverlap: ctx.chartStylePreset.axis.hideOverlap ?? true,\n // Display-only: DAY/WEEK keys re-render as locale-driven \"Aug 14\".\n ...(timeDisplayFormatter ? { formatter: timeDisplayFormatter } : {}),\n },\n }\n : buildCategoryXAxis(ctx.response.data, dimRef, ctx.chartStylePreset, ctx.dimensionEnumLabels?.[dimRef]);\n // Resolve Y axis label via i18n if available\n const yAxisLabel = ctx.definition.i18n?.yAxisLabelKey\n ? (() => { const r = ctx.t(ctx.definition.i18n!.yAxisLabelKey!); return r !== ctx.definition.i18n!.yAxisLabelKey! ? r : undefined; })()\n : undefined;\n const yAxis = buildValueYAxis(yAxisLabel, ctx.chartStylePreset, {\n integerValued: areAllSeriesMeasuresIntegerValued(ctx, seriesDefs),\n });\n\n // Detect if we need densified overlay handling\n const needsDensifiedOverlay = hasDensifiedRows(ctx.response.data);\n\n const echartsSeriesList: unknown[] = [];\n\n for (let i = 0; i < seriesDefs.length; i++) {\n const sDef = seriesDefs[i];\n\n if (sDef.splitByDimension) {\n // Generate sub-series per split dimension value, each aligned to the full\n // category/bucket axis (index-aligned values; missing buckets are gaps).\n const splitValues = getSplitValues(ctx.response.data, sDef.splitByDimension, sDef);\n\n for (let j = 0; j < splitValues.length; j++) {\n const splitVal = splitValues[j];\n const color = resolveSplitColor(splitVal, j, sDef, ctx.colorPalette, ctx.dimensionEnumColors[sDef.splitByDimension!]);\n const seriesName = resolveSplitLabel(splitVal, sDef, ctx, sDef.splitByDimension);\n\n const { realValues, filledValues } = this.buildCategorySplitDataWithOverlay(\n ctx, sDef, dimRef, splitVal, uniqueCategories,\n );\n\n const mainItem = this.buildLineItem(seriesName, realValues, color, isArea, isStacked, isStep, sDef, cfg);\n echartsSeriesList.push(mainItem);\n\n if (filledValues.some(v => v !== null)) {\n const overlayItem = this.buildDashedOverlayItem(\n seriesName, filledValues, color, isArea, isStacked, isStep, sDef, cfg,\n );\n echartsSeriesList.push(overlayItem);\n }\n }\n } else {\n // No split-by: standard single series, index-aligned to uniqueCategories.\n const color = resolveSeriesColor(sDef, i, ctx.colorPalette);\n const sName = resolveSeriesName(sDef, ctx.t);\n\n if (needsDensifiedOverlay) {\n // Densified (time) series → split into a solid real series + a dashed\n // filled overlay, both index-aligned to the bucket axis.\n const { realValues, filledValues } = this.buildDensifiedValueSeries(\n ctx.response.data, dimRef, sDef.measureRef, uniqueCategories,\n );\n\n const mainItem = this.buildLineItem(sName, realValues, color, isArea, isStacked, isStep, sDef, cfg);\n mainItem.yAxisIndex = sDef.yAxisIndex;\n mainItem.connectNulls = sDef.style?.connectNulls ?? false;\n echartsSeriesList.push(mainItem);\n\n if (filledValues.some(v => v !== null)) {\n const overlayItem = this.buildDashedOverlayItem(sName, filledValues, color, isArea, isStacked, isStep, sDef, cfg);\n overlayItem.yAxisIndex = sDef.yAxisIndex;\n overlayItem.connectNulls = false;\n echartsSeriesList.push(overlayItem);\n }\n } else {\n const values = extractMeasureValues(ctx.response.data, sDef.measureRef);\n const item = this.buildLineItem(sName, values, color, isArea, isStacked, isStep, sDef, cfg);\n item.yAxisIndex = sDef.yAxisIndex;\n echartsSeriesList.push(item);\n }\n }\n }\n\n return {\n series: echartsSeriesList,\n xAxis,\n yAxis,\n };\n }\n\n // ── Core series item builder ─────────────────────────────\n\n private buildLineItem(\n name: string | undefined,\n data: unknown[],\n color: string,\n isArea: boolean,\n isStacked: boolean,\n isStep: boolean,\n sDef: ChartSeriesDefinition,\n cfg: ChartTypeConfig_Line,\n ): Record<string, unknown> {\n const threshold = cfg.symbolVisibilityThreshold ?? 30;\n const item: Record<string, unknown> = {\n type: 'line',\n name,\n data,\n itemStyle: { color },\n lineStyle: { color },\n showSymbol: data.length <= threshold,\n };\n this.applyLineVariant(item, isArea, isStacked, isStep, sDef);\n applySeriesStyle(item, sDef);\n return item;\n }\n\n // ── Dashed overlay for densified segments ─────────────────\n\n private buildDashedOverlayItem(\n baseName: string | undefined,\n data: unknown[],\n color: string,\n isArea: boolean,\n isStacked: boolean,\n isStep: boolean,\n sDef: ChartSeriesDefinition,\n cfg: ChartTypeConfig_Line,\n ): Record<string, unknown> {\n const overlay = cfg.densifiedOverlay;\n // Resolve the overlay name suffix via i18n key if configured\n const overlaySuffix = cfg.densifiedOverlayNameKey\n ? (() => { const r = this._t?.(cfg.densifiedOverlayNameKey!); return r && r !== cfg.densifiedOverlayNameKey ? r : '(filled)'; })()\n : '(filled)';\n const item: Record<string, unknown> = {\n type: 'line',\n name: baseName ? `${baseName} ${overlaySuffix}` : overlaySuffix,\n data,\n itemStyle: { color, opacity: overlay?.itemOpacity ?? 0.4 },\n lineStyle: { color, type: overlay?.lineType ?? 'dashed', opacity: overlay?.lineOpacity ?? 0.5, width: overlay?.lineWidth ?? 1 },\n showSymbol: overlay?.showSymbol ?? false,\n legendHoverLink: false,\n emphasis: { disabled: true },\n };\n\n if (isArea || isStacked) {\n item.areaStyle = { opacity: overlay?.areaOpacity ?? 0.1 };\n }\n if (isStacked) {\n item.stack = 'stack';\n }\n if (isStep) {\n item.step = sDef.style?.step ?? 'start';\n }\n\n return item;\n }\n\n // ── Densified (non-split) value series with overlay separation ──\n\n /**\n * Split a densified single (non-split) series into index-aligned real +\n * filled value arrays over the ordered bucket keys. Mirrors\n * {@link buildCategorySplitDataWithOverlay} for the no-split case: filled\n * buckets carry the value in `filledValues` (dashed overlay) and `null` in\n * `realValues`; real buckets adjacent to a filled one are bridged into\n * `filledValues` so the dashed overlay connects continuously across gaps.\n */\n private buildDensifiedValueSeries(\n rows: AggregationQueryResponseRow[],\n dimRef: string,\n measureRef: string,\n orderedKeys: string[],\n ): { realValues: (number | null)[]; filledValues: (number | null)[] } {\n const valueMap = new Map<string, number | null>();\n const filledMap = new Map<string, boolean>();\n\n for (const row of rows) {\n const cat = String(row[dimRef]);\n const val = row[measureRef];\n valueMap.set(cat, val == null ? null : (typeof val === 'number' ? val : Number(val)));\n filledMap.set(cat, isFilledRow(row));\n }\n\n const realValues: (number | null)[] = [];\n const filledValues: (number | null)[] = [];\n\n for (let i = 0; i < orderedKeys.length; i++) {\n const cat = orderedKeys[i];\n const val = valueMap.get(cat) ?? null;\n const filled = filledMap.get(cat) ?? false;\n\n if (filled) {\n realValues.push(null);\n filledValues.push(val);\n } else {\n realValues.push(val);\n const prevFilled = i > 0 && (filledMap.get(orderedKeys[i - 1]) ?? false);\n const nextFilled = i < orderedKeys.length - 1 && (filledMap.get(orderedKeys[i + 1]) ?? false);\n filledValues.push((prevFilled || nextFilled) ? val : null);\n }\n }\n\n return { realValues, filledValues };\n }\n\n // ── Category split data with overlay separation ───────────\n\n private buildCategorySplitDataWithOverlay(\n ctx: ChartBuildContext,\n sDef: ChartSeriesDefinition,\n dimRef: string,\n splitVal: string,\n uniqueCategories: string[],\n ): { realValues: (number | null)[]; filledValues: (number | null)[] } {\n const categoryValueMap = new Map<string, number>();\n const categoryFilledMap = new Map<string, boolean>();\n\n for (const row of ctx.response.data) {\n if (String(row[sDef.splitByDimension!]) === splitVal) {\n const cat = String(row[dimRef]);\n const val = row[sDef.measureRef];\n categoryValueMap.set(cat, typeof val === 'number' ? val : Number(val) || 0);\n categoryFilledMap.set(cat, isFilledRow(row));\n }\n }\n\n const realValues: (number | null)[] = [];\n const filledValues: (number | null)[] = [];\n\n for (let i = 0; i < uniqueCategories.length; i++) {\n const cat = uniqueCategories[i];\n const val = categoryValueMap.get(cat) ?? null;\n const filled = categoryFilledMap.get(cat) ?? false;\n\n if (filled) {\n realValues.push(null);\n filledValues.push(val);\n } else {\n realValues.push(val);\n const prevFilled = i > 0 && (categoryFilledMap.get(uniqueCategories[i - 1]) ?? false);\n const nextFilled = i < uniqueCategories.length - 1 && (categoryFilledMap.get(uniqueCategories[i + 1]) ?? false);\n filledValues.push((prevFilled || nextFilled) ? val : null);\n }\n }\n\n return { realValues, filledValues };\n }\n\n // ── Line variant application ─────────────────────────────\n\n private applyLineVariant(\n item: Record<string, unknown>,\n isArea: boolean,\n isStacked: boolean,\n isStep: boolean,\n sDef: ChartSeriesDefinition,\n ): void {\n if (isArea) {\n item.areaStyle = { opacity: sDef.style?.areaOpacity ?? 0.3 };\n }\n if (isStacked) {\n item.stack = 'stack';\n item.areaStyle = { opacity: sDef.style?.areaOpacity ?? 0.3 };\n }\n if (isStep) {\n item.step = sDef.style?.step ?? 'start';\n }\n }\n}\n"]}
@@ -51,7 +51,7 @@ export class ScatterFamilyBuilder {
51
51
  || (typeof v === 'string' && v.trim() !== '' && Number.isFinite(Number(v)));
52
52
  });
53
53
  const xAxis = isTimeX
54
- ? buildTimeCategoryXAxis(ctx.response.data, xDimRef, timeGranularity, resolvedTz, ctx.chartStylePreset)
54
+ ? buildTimeCategoryXAxis(ctx.response.data, xDimRef, timeGranularity, resolvedTz, ctx.locale, ctx.chartStylePreset)
55
55
  : isNumericX
56
56
  ? { type: 'value' }
57
57
  : buildCategoryXAxis(ctx.response.data, xDimRef, ctx.chartStylePreset, ctx.dimensionEnumLabels?.[xDimRef]);
@@ -1 +1 @@
1
- {"version":3,"file":"scatter-family.builder.js","sourceRoot":"","sources":["../../../../../../../../src/components/views/chart-view/option-builder/builders/scatter-family.builder.ts"],"names":[],"mappings":"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","sourcesContent":["/** Scatter family builder: SCATTER, BUBBLE */\n\nimport { ChartType } from '@wildo-ai/saas-models';\nimport type { ChartSeriesDefinition, ChartTypeConfig_Scatter, TimeGranularity } from '@wildo-ai/saas-models';\nimport type { ChartTypeBuilder, ChartBuildContext, ChartBuildResult } from '~wildo-frontend-lib/components/views/chart-view/option-builder/chart-type-builder.interface';\nimport { areAllSeriesMeasuresIntegerValued, resolveSeriesColor, resolveSeriesName, buildValueYAxis, buildCategoryXAxis, buildTimeCategoryXAxis, formatTimeBucketLabel, getResolvedTimezone } from '~wildo-frontend-lib/components/views/chart-view/option-builder/builder-utils';\n\nexport class ScatterFamilyBuilder implements ChartTypeBuilder {\n supportedTypes = [ChartType.SCATTER, ChartType.BUBBLE];\n\n build(ctx: ChartBuildContext, seriesDefs: ChartSeriesDefinition[]): ChartBuildResult {\n const dims = ctx.definition.dataQuery.dimensions;\n const xDimRef = dims[0]?.ref ?? '';\n const isBubble = ctx.definition.chartType === ChartType.BUBBLE;\n const cfg = (ctx.definition.chartTypeConfig ?? {}) as ChartTypeConfig_Scatter;\n\n const [minBubble, maxBubble] = cfg.bubbleSizeRange ?? [4, 60];\n\n // The x dimension is NOT necessarily numeric. A categorical first dimension\n // (e.g. `status`) on a hard-coded value axis collapses every point onto x=0.\n // Resolve the axis type like the bar/line families: time → value → category.\n // A time x renders as a category axis of timezone-correct labels (ECharts\n // `type:'time'` re-parses the UTC bucket instants in the browser's timezone),\n // and each point's x is the matching formatted bucket label.\n const xDim = dims[0] as { timeGranularity?: TimeGranularity } | undefined;\n const isTimeX = xDim?.timeGranularity != null;\n const timeGranularity = xDim?.timeGranularity;\n const resolvedTz = getResolvedTimezone(ctx);\n\n const echartsSeriesList: unknown[] = [];\n\n for (let i = 0; i < seriesDefs.length; i++) {\n const sDef = seriesDefs[i];\n\n const scatterData = ctx.response.data.map(row => {\n const x = isTimeX ? formatTimeBucketLabel(row[xDimRef], timeGranularity, resolvedTz) : row[xDimRef];\n const point: unknown[] = [x, row[sDef.measureRef]];\n // For bubble charts, the third measure (if available) is the bubble size\n if (isBubble && ctx.definition.dataQuery.measures.length > 1) {\n const sizeMeasureRef = ctx.definition.dataQuery.measures[1]?.ref;\n if (sizeMeasureRef) point.push(row[sizeMeasureRef]);\n }\n return point;\n });\n\n const item: Record<string, unknown> = {\n type: 'scatter',\n name: resolveSeriesName(sDef, ctx.t),\n data: scatterData,\n itemStyle: { color: resolveSeriesColor(sDef, i, ctx.colorPalette) },\n ...(cfg.symbolShape ? { symbol: cfg.symbolShape } : {}),\n symbolSize: isBubble\n ? (data: number[]) => Math.min(Math.max(Number(data[2]) || 10, minBubble), maxBubble)\n : sDef.style?.pointSize ?? 8,\n };\n\n echartsSeriesList.push(item);\n }\n\n const isNumericX = !isTimeX && ctx.response.data.length > 0 && ctx.response.data.every(row => {\n const v = row[xDimRef];\n return typeof v === 'number'\n || (typeof v === 'string' && v.trim() !== '' && Number.isFinite(Number(v)));\n });\n const xAxis = isTimeX\n ? buildTimeCategoryXAxis(ctx.response.data, xDimRef, timeGranularity, resolvedTz, ctx.chartStylePreset)\n : isNumericX\n ? { type: 'value' }\n : buildCategoryXAxis(ctx.response.data, xDimRef, ctx.chartStylePreset, ctx.dimensionEnumLabels?.[xDimRef]);\n\n return {\n series: echartsSeriesList,\n xAxis,\n yAxis: buildValueYAxis(undefined, ctx.chartStylePreset, {\n integerValued: areAllSeriesMeasuresIntegerValued(ctx, seriesDefs),\n }),\n };\n }\n}\n"]}
1
+ {"version":3,"file":"scatter-family.builder.js","sourceRoot":"","sources":["../../../../../../../../src/components/views/chart-view/option-builder/builders/scatter-family.builder.ts"],"names":[],"mappings":"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","sourcesContent":["/** Scatter family builder: SCATTER, BUBBLE */\n\nimport { ChartType } from '@wildo-ai/saas-models';\nimport type { ChartSeriesDefinition, ChartTypeConfig_Scatter, TimeGranularity } from '@wildo-ai/saas-models';\nimport type { ChartTypeBuilder, ChartBuildContext, ChartBuildResult } from '~wildo-frontend-lib/components/views/chart-view/option-builder/chart-type-builder.interface';\nimport { areAllSeriesMeasuresIntegerValued, resolveSeriesColor, resolveSeriesName, buildValueYAxis, buildCategoryXAxis, buildTimeCategoryXAxis, formatTimeBucketLabel, getResolvedTimezone } from '~wildo-frontend-lib/components/views/chart-view/option-builder/builder-utils';\n\nexport class ScatterFamilyBuilder implements ChartTypeBuilder {\n supportedTypes = [ChartType.SCATTER, ChartType.BUBBLE];\n\n build(ctx: ChartBuildContext, seriesDefs: ChartSeriesDefinition[]): ChartBuildResult {\n const dims = ctx.definition.dataQuery.dimensions;\n const xDimRef = dims[0]?.ref ?? '';\n const isBubble = ctx.definition.chartType === ChartType.BUBBLE;\n const cfg = (ctx.definition.chartTypeConfig ?? {}) as ChartTypeConfig_Scatter;\n\n const [minBubble, maxBubble] = cfg.bubbleSizeRange ?? [4, 60];\n\n // The x dimension is NOT necessarily numeric. A categorical first dimension\n // (e.g. `status`) on a hard-coded value axis collapses every point onto x=0.\n // Resolve the axis type like the bar/line families: time → value → category.\n // A time x renders as a category axis of timezone-correct labels (ECharts\n // `type:'time'` re-parses the UTC bucket instants in the browser's timezone),\n // and each point's x is the matching formatted bucket label.\n const xDim = dims[0] as { timeGranularity?: TimeGranularity } | undefined;\n const isTimeX = xDim?.timeGranularity != null;\n const timeGranularity = xDim?.timeGranularity;\n const resolvedTz = getResolvedTimezone(ctx);\n\n const echartsSeriesList: unknown[] = [];\n\n for (let i = 0; i < seriesDefs.length; i++) {\n const sDef = seriesDefs[i];\n\n const scatterData = ctx.response.data.map(row => {\n const x = isTimeX ? formatTimeBucketLabel(row[xDimRef], timeGranularity, resolvedTz) : row[xDimRef];\n const point: unknown[] = [x, row[sDef.measureRef]];\n // For bubble charts, the third measure (if available) is the bubble size\n if (isBubble && ctx.definition.dataQuery.measures.length > 1) {\n const sizeMeasureRef = ctx.definition.dataQuery.measures[1]?.ref;\n if (sizeMeasureRef) point.push(row[sizeMeasureRef]);\n }\n return point;\n });\n\n const item: Record<string, unknown> = {\n type: 'scatter',\n name: resolveSeriesName(sDef, ctx.t),\n data: scatterData,\n itemStyle: { color: resolveSeriesColor(sDef, i, ctx.colorPalette) },\n ...(cfg.symbolShape ? { symbol: cfg.symbolShape } : {}),\n symbolSize: isBubble\n ? (data: number[]) => Math.min(Math.max(Number(data[2]) || 10, minBubble), maxBubble)\n : sDef.style?.pointSize ?? 8,\n };\n\n echartsSeriesList.push(item);\n }\n\n const isNumericX = !isTimeX && ctx.response.data.length > 0 && ctx.response.data.every(row => {\n const v = row[xDimRef];\n return typeof v === 'number'\n || (typeof v === 'string' && v.trim() !== '' && Number.isFinite(Number(v)));\n });\n const xAxis = isTimeX\n ? buildTimeCategoryXAxis(ctx.response.data, xDimRef, timeGranularity, resolvedTz, ctx.locale, ctx.chartStylePreset)\n : isNumericX\n ? { type: 'value' }\n : buildCategoryXAxis(ctx.response.data, xDimRef, ctx.chartStylePreset, ctx.dimensionEnumLabels?.[xDimRef]);\n\n return {\n series: echartsSeriesList,\n xAxis,\n yAxis: buildValueYAxis(undefined, ctx.chartStylePreset, {\n integerValued: areAllSeriesMeasuresIntegerValued(ctx, seriesDefs),\n }),\n };\n }\n}\n"]}
@@ -49,6 +49,12 @@ export interface ChartBuildContext {
49
49
  * Falls back to identity (returns the key) when no i18n context is available.
50
50
  */
51
51
  t: ChartI18nResolver;
52
+ /**
53
+ * The reader's formatting locale (`useI18n().resolvedRegionalPreferences.locale`), for display-only text
54
+ * the builders compose themselves, such as DAY/WEEK axis labels (#2258). `undefined` when the caller named no
55
+ * reader: `Intl` then uses the runtime's default, which is what these labels always used before.
56
+ */
57
+ locale: string | undefined;
52
58
  }
53
59
  /** Result from a chart type builder — a partial ECharts option */
54
60
  export interface ChartBuildResult {
@@ -1 +1 @@
1
- {"version":3,"file":"chart-type-builder.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/chart-type-builder.interface.ts"],"names":[],"mappings":"AAAA;;;;;oEAKoE;AAEpE,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mEAAmE,CAAC;AAE7G;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;AAElG,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,EAAE,wBAAwB,CAAC;IACnC,wDAAwD;IACxD,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,6BAA6B;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACzD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,6EAA6E;IAC7E,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;;OAGG;IACH,CAAC,EAAE,iBAAiB,CAAC;CACtB;AAED,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,sDAAsD;IACtD,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CAAC;CACtF"}
1
+ {"version":3,"file":"chart-type-builder.interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/chart-type-builder.interface.ts"],"names":[],"mappings":"AAAA;;;;;oEAKoE;AAEpE,OAAO,KAAK,EACV,qBAAqB,EACrB,wBAAwB,EACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mEAAmE,CAAC;AAE7G;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;AAElG,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,gCAAgC;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,kDAAkD;IAClD,QAAQ,EAAE,wBAAwB,CAAC;IACnC,wDAAwD;IACxD,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,6BAA6B;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB;;;;;;OAMG;IACH,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACzD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,6EAA6E;IAC7E,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;;OAGG;IACH,CAAC,EAAE,iBAAiB,CAAC;IACrB;;;;OAIG;IACH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,kEAAkE;AAClE,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAC/B,kDAAkD;IAClD,cAAc,EAAE,MAAM,EAAE,CAAC;IAEzB,sDAAsD;IACtD,KAAK,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,CAAC;CACtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"chart-type-builder.interface.js","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/chart-type-builder.interface.ts"],"names":[],"mappings":"AAAA;;;;;oEAKoE","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartTypeBuilder Interface + ChartBuildContext\n * \n * Each chart type family implements this interface.\n * The EChartsOptionBuilder dispatches to the right builder by ChartType.\n * ────────────────────────────────────────────────────────────── */\n\nimport type {\n ChartSeriesDefinition,\n AggregationQueryResponse,\n} from '@wildo-ai/saas-models';\nimport type { ChartDefinition } from '@wildo-ai/saas-models';\nimport type { ChartStylePreset } from '@wildo-ai/presets-components-models';\nimport type { DimensionEnumColors } from '~wildo-frontend-lib/components/views/chart-view/enum-color-bridge';\n\n/**\n * i18n resolver function signature.\n * \n * Accepts a translation key and returns the resolved string.\n * When the key is not found, returns the key itself (identity fallback).\n * Builders use this to resolve i18n keys from series.nameKey, i18n.splitValueKeys, etc.\n */\nexport type ChartI18nResolver = (key: string, params?: Record<string, string | number>) => string;\n\n/** Context passed to every chart type builder */\nexport interface ChartBuildContext {\n /** The full chart definition */\n definition: ChartDefinition;\n /** The aggregated data returned by the backend */\n response: AggregationQueryResponse;\n /** Container dimensions (for responsive adjustments) */\n containerSize: { width: number; height: number };\n /** Resolved color palette */\n colorPalette: string[];\n /**\n * Per-dimension enum→color maps, keyed by dimension `ref`, resolved from each\n * dimension field's `enumUI` decorator (the same source that colors the value's\n * badge). Absent/empty for non-enum dimensions. Builders MUST prefer these over\n * `colorPalette` (after any explicit `splitConfig.colorMap` override) so chart\n * colors stay coherent with the enum's badges. See `enum-color-bridge.ts`.\n */\n dimensionEnumColors: Record<string, DimensionEnumColors>;\n /**\n * Per-dimension enum value → display label, keyed by dimension `ref` (see `DimensionEnumMeta.labels`).\n * Builders display these for categories, slices and split series, and keep the raw value for data.\n */\n dimensionEnumLabels?: Record<string, Record<string, string>>;\n /** Resolved chart style preset from current theme (with defaults applied) */\n chartStylePreset: ChartStylePreset;\n /**\n * i18n resolver — resolves translation keys to localized strings.\n * Falls back to identity (returns the key) when no i18n context is available.\n */\n t: ChartI18nResolver;\n}\n\n/** Result from a chart type builder — a partial ECharts option */\nexport interface ChartBuildResult {\n series: unknown[];\n xAxis?: unknown;\n yAxis?: unknown;\n radar?: unknown;\n /** Any extra top-level ECharts option keys */\n [key: string]: unknown;\n}\n\n/** Every chart type family must implement this */\nexport interface ChartTypeBuilder {\n /** Which ChartType values this builder handles */\n supportedTypes: string[];\n\n /** Build ECharts series + axis config from context */\n build(context: ChartBuildContext, series: ChartSeriesDefinition[]): ChartBuildResult;\n}\n"]}
1
+ {"version":3,"file":"chart-type-builder.interface.js","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/chart-type-builder.interface.ts"],"names":[],"mappings":"AAAA;;;;;oEAKoE","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * ChartTypeBuilder Interface + ChartBuildContext\n * \n * Each chart type family implements this interface.\n * The EChartsOptionBuilder dispatches to the right builder by ChartType.\n * ────────────────────────────────────────────────────────────── */\n\nimport type {\n ChartSeriesDefinition,\n AggregationQueryResponse,\n} from '@wildo-ai/saas-models';\nimport type { ChartDefinition } from '@wildo-ai/saas-models';\nimport type { ChartStylePreset } from '@wildo-ai/presets-components-models';\nimport type { DimensionEnumColors } from '~wildo-frontend-lib/components/views/chart-view/enum-color-bridge';\n\n/**\n * i18n resolver function signature.\n * \n * Accepts a translation key and returns the resolved string.\n * When the key is not found, returns the key itself (identity fallback).\n * Builders use this to resolve i18n keys from series.nameKey, i18n.splitValueKeys, etc.\n */\nexport type ChartI18nResolver = (key: string, params?: Record<string, string | number>) => string;\n\n/** Context passed to every chart type builder */\nexport interface ChartBuildContext {\n /** The full chart definition */\n definition: ChartDefinition;\n /** The aggregated data returned by the backend */\n response: AggregationQueryResponse;\n /** Container dimensions (for responsive adjustments) */\n containerSize: { width: number; height: number };\n /** Resolved color palette */\n colorPalette: string[];\n /**\n * Per-dimension enum→color maps, keyed by dimension `ref`, resolved from each\n * dimension field's `enumUI` decorator (the same source that colors the value's\n * badge). Absent/empty for non-enum dimensions. Builders MUST prefer these over\n * `colorPalette` (after any explicit `splitConfig.colorMap` override) so chart\n * colors stay coherent with the enum's badges. See `enum-color-bridge.ts`.\n */\n dimensionEnumColors: Record<string, DimensionEnumColors>;\n /**\n * Per-dimension enum value → display label, keyed by dimension `ref` (see `DimensionEnumMeta.labels`).\n * Builders display these for categories, slices and split series, and keep the raw value for data.\n */\n dimensionEnumLabels?: Record<string, Record<string, string>>;\n /** Resolved chart style preset from current theme (with defaults applied) */\n chartStylePreset: ChartStylePreset;\n /**\n * i18n resolver — resolves translation keys to localized strings.\n * Falls back to identity (returns the key) when no i18n context is available.\n */\n t: ChartI18nResolver;\n /**\n * The reader's formatting locale (`useI18n().resolvedRegionalPreferences.locale`), for display-only text\n * the builders compose themselves, such as DAY/WEEK axis labels (#2258). `undefined` when the caller named no\n * reader: `Intl` then uses the runtime's default, which is what these labels always used before.\n */\n locale: string | undefined;\n}\n\n/** Result from a chart type builder — a partial ECharts option */\nexport interface ChartBuildResult {\n series: unknown[];\n xAxis?: unknown;\n yAxis?: unknown;\n radar?: unknown;\n /** Any extra top-level ECharts option keys */\n [key: string]: unknown;\n}\n\n/** Every chart type family must implement this */\nexport interface ChartTypeBuilder {\n /** Which ChartType values this builder handles */\n supportedTypes: string[];\n\n /** Build ECharts series + axis config from context */\n build(context: ChartBuildContext, series: ChartSeriesDefinition[]): ChartBuildResult;\n}\n"]}
@@ -22,9 +22,11 @@ import type { DimensionEnumMeta } from '../../../../components/views/chart-view/
22
22
  *
23
23
  * @param chartStylePreset - Resolved preset from the current theme (or default)
24
24
  * @param t - i18n resolver function (from useI18n). Defaults to identity fallback.
25
+ * @param locale - the reader's formatting locale (`useI18n().resolvedRegionalPreferences.locale`), for axis
26
+ * labels the builders format themselves (#2258). Omitted, `Intl` uses the runtime default.
25
27
  */
26
28
  export declare function buildEChartsOption(definition: ChartDefinition, response: AggregationQueryResponse, containerSize?: {
27
29
  width: number;
28
30
  height: number;
29
- }, chartStylePreset?: ChartStylePreset, t?: ChartI18nResolver, dimensionEnumMeta?: DimensionEnumMeta): Record<string, unknown>;
31
+ }, chartStylePreset?: ChartStylePreset, t?: ChartI18nResolver, dimensionEnumMeta?: DimensionEnumMeta, locale?: string): Record<string, unknown>;
30
32
  //# sourceMappingURL=echarts-option-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"echarts-option-builder.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/echarts-option-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;oEAaoE;AAGpE,OAAO,KAAK,EAAE,wBAAwB,EAAmB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAuC,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAmF3G;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,wBAAwB,EAClC,aAAa,GAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAgC,EAC9E,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,CAAC,GAAE,iBAA6B,EAChC,iBAAiB,GAAE,iBAAyD,GAC3E,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0NzB"}
1
+ {"version":3,"file":"echarts-option-builder.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/echarts-option-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;oEAaoE;AAGpE,OAAO,KAAK,EAAE,wBAAwB,EAAmB,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAuC,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC7G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AAmF3G;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,eAAe,EAC3B,QAAQ,EAAE,wBAAwB,EAClC,aAAa,GAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAgC,EAC9E,gBAAgB,CAAC,EAAE,gBAAgB,EACnC,CAAC,GAAE,iBAA6B,EAChC,iBAAiB,GAAE,iBAAyD,EAC5E,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2NzB"}
@@ -89,8 +89,10 @@ const identityT = (key) => key;
89
89
  *
90
90
  * @param chartStylePreset - Resolved preset from the current theme (or default)
91
91
  * @param t - i18n resolver function (from useI18n). Defaults to identity fallback.
92
+ * @param locale - the reader's formatting locale (`useI18n().resolvedRegionalPreferences.locale`), for axis
93
+ * labels the builders format themselves (#2258). Omitted, `Intl` uses the runtime default.
92
94
  */
93
- export function buildEChartsOption(definition, response, containerSize = { width: 800, height: 400 }, chartStylePreset, t = identityT, dimensionEnumMeta = { colors: {}, order: {}, labels: {} }) {
95
+ export function buildEChartsOption(definition, response, containerSize = { width: 800, height: 400 }, chartStylePreset, t = identityT, dimensionEnumMeta = { colors: {}, order: {}, labels: {} }, locale) {
94
96
  const preset = chartStylePreset ?? getDefaultChartStylePreset();
95
97
  const appearance = definition.appearance;
96
98
  const i18n = definition.i18n;
@@ -127,6 +129,7 @@ export function buildEChartsOption(definition, response, containerSize = { width
127
129
  t,
128
130
  dimensionEnumColors: dimensionEnumMeta.colors,
129
131
  dimensionEnumLabels: dimensionEnumMeta.labels,
132
+ locale,
130
133
  };
131
134
  // Build chart-specific config
132
135
  const result = builder.build(context, definition.series);
@@ -1 +1 @@
1
- {"version":3,"file":"echarts-option-builder.js","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/echarts-option-builder.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * EChartsOptionBuilder — Registry + common post-processing\n * \n * Dispatches to the right ChartTypeBuilder by ChartType,\n * then applies common tooltip, legend, grid, and responsive media.\n * \n * Precedence model (later wins):\n * 1. ECharts built-in defaults\n * 2. Wildo registered theme (from buildWildoTheme)\n * 3. ChartStylePreset from current ComponentStyleTheme\n * 4. ChartDefinition.appearance (per-chart config)\n * 5. ChartDefinition.series[].style (per-series)\n * 6. ChartDefinition.series[].splitConfig.colorMap\n * ────────────────────────────────────────────────────────────── */\n\nimport { ChartType } from '@wildo-ai/saas-models';\nimport type { AggregationQueryResponse, ChartAppearance } from '@wildo-ai/saas-models';\nimport type { ChartDefinition } from '@wildo-ai/saas-models';\nimport type { ChartStylePreset } from '@wildo-ai/presets-components-models';\nimport type { ChartTypeBuilder, ChartBuildContext, ChartI18nResolver } from './chart-type-builder.interface';\nimport type { DimensionEnumMeta } from '~wildo-frontend-lib/components/views/chart-view/enum-color-bridge';\nimport { buildResponsiveMedia, sortRowsByDimensionOrder } from './builder-utils';\nimport { getChartColorPalette, getDefaultChartStylePreset, resolveCSSColor } from '~wildo-frontend-lib/components/views/chart-view/chart-theme-bridge';\n\n// Import builders\nimport { BarFamilyBuilder } from './builders/bar-family.builder';\nimport { LineFamilyBuilder } from './builders/line-family.builder';\nimport { PieFamilyBuilder } from './builders/pie-family.builder';\nimport { ScatterFamilyBuilder } from './builders/scatter-family.builder';\nimport { GaugeBuilder } from './builders/gauge.builder';\nimport { FunnelBuilder } from './builders/funnel.builder';\nimport { RadarBuilder } from './builders/radar.builder';\nimport { SankeyBuilder } from './builders/sankey.builder';\nimport { HierarchicalFamilyBuilder } from './builders/hierarchical-family.builder';\nimport { HeatmapBuilder } from './builders/heatmap.builder';\nimport { StatisticalFamilyBuilder } from './builders/statistical-family.builder';\nimport { ParallelBuilder } from './builders/parallel.builder';\nimport { ComposedBuilder } from './builders/composed.builder';\n\n// ── Builder Registry ─────────────────────────────────────────\n\nconst builders: ChartTypeBuilder[] = [\n new BarFamilyBuilder(),\n new LineFamilyBuilder(),\n new PieFamilyBuilder(),\n new ScatterFamilyBuilder(),\n new GaugeBuilder(),\n new FunnelBuilder(),\n new RadarBuilder(),\n new SankeyBuilder(),\n new HierarchicalFamilyBuilder(),\n new HeatmapBuilder(),\n new StatisticalFamilyBuilder(),\n new ParallelBuilder(),\n new ComposedBuilder(),\n];\n\nconst builderMap = new Map<string, ChartTypeBuilder>();\nfor (const builder of builders) {\n for (const type of builder.supportedTypes) {\n builderMap.set(type, builder);\n }\n}\n\n/** Chart types that use 'item' trigger for tooltip (vs 'axis') */\nconst itemTooltipTypes = new Set<string>([\n 'pie', 'donut', 'funnel', 'radar', 'sankey', 'sunburst', 'treemap', 'gauge', 'heatmap',\n]);\n\n/** Chart types that always show legend */\nconst alwaysShowLegendTypes = new Set<string>([\n 'pie', 'donut', 'funnel', 'sankey',\n]);\n\n// ── Helpers ───────────────────────────────────────────────────\n\n/** Resolve grid padding: preset defaults → appearance overrides */\nfunction resolveGridPadding(\n preset: ChartStylePreset,\n appearance?: ChartAppearance,\n seriesCount?: number,\n): { top: number; right: number; bottom: number; left: number } {\n const base = { ...preset.gridPadding };\n // Adjust bottom for multi-series legend\n if (seriesCount && seriesCount > 1) {\n base.bottom = Math.max(base.bottom, preset.multiSeriesLegendBottomPadding ?? 50);\n }\n // Apply per-chart overrides\n if (appearance?.gridPadding) {\n const o = appearance.gridPadding;\n if (o.top !== undefined) base.top = o.top;\n if (o.right !== undefined) base.right = o.right;\n if (o.bottom !== undefined) base.bottom = o.bottom;\n if (o.left !== undefined) base.left = o.left;\n }\n return base;\n}\n\n// ── Main Builder Function ────────────────────────────────────\n\n/** Identity i18n fallback — returns the key unchanged */\nconst identityT: ChartI18nResolver = (key) => key;\n\n/**\n * Build a complete ECharts option from a ChartDefinition + data response.\n * \n * @param chartStylePreset - Resolved preset from the current theme (or default)\n * @param t - i18n resolver function (from useI18n). Defaults to identity fallback.\n */\nexport function buildEChartsOption(\n definition: ChartDefinition,\n response: AggregationQueryResponse,\n containerSize: { width: number; height: number } = { width: 800, height: 400 },\n chartStylePreset?: ChartStylePreset,\n t: ChartI18nResolver = identityT,\n dimensionEnumMeta: DimensionEnumMeta = { colors: {}, order: {}, labels: {} },\n): Record<string, unknown> {\n const preset = chartStylePreset ?? getDefaultChartStylePreset();\n const appearance = definition.appearance;\n const i18n = definition.i18n;\n\n // Enum-order sort (at the data boundary so every family inherits it): when the\n // primary dimension is an enum, order rows by the enum's DECLARED member order\n // (LOW → MEDIUM → HIGH → URGENT) instead of the backend's natural order. An\n // explicit authored `dataQuery.orderBy` wins — we never override intentional\n // sorting. Both the category axis and the series data derive from these rows,\n // so sorting once keeps them aligned.\n const primaryDimRef = definition.dataQuery.dimensions[0]?.ref;\n const enumOrder = primaryDimRef ? dimensionEnumMeta.order[primaryDimRef] : undefined;\n const hasExplicitOrderBy = Array.isArray(definition.dataQuery.orderBy) && definition.dataQuery.orderBy.length > 0;\n const orderedResponse = (primaryDimRef && enumOrder && !hasExplicitOrderBy)\n ? { ...response, data: sortRowsByDimensionOrder(response.data, primaryDimRef, enumOrder) }\n : response;\n\n // Color palette: per-chart override → design token system\n const colorPalette = appearance?.colorPalette?.length\n ? appearance.colorPalette\n : getChartColorPalette(preset);\n\n // Resolve effective chart type for each series\n // For COMPOSED charts, series have individual chartTypes\n const effectiveType = definition.chartType;\n\n const builder = builderMap.get(effectiveType);\n if (!builder) {\n console.warn(`EChartsOptionBuilder: no builder for chart type '${effectiveType}'`);\n return { series: [] };\n }\n\n const context: ChartBuildContext = {\n definition,\n response: orderedResponse,\n containerSize,\n colorPalette,\n chartStylePreset: preset,\n t,\n dimensionEnumColors: dimensionEnumMeta.colors,\n dimensionEnumLabels: dimensionEnumMeta.labels,\n };\n\n // Build chart-specific config\n const result = builder.build(context, definition.series);\n\n // Legend visibility: appearance override → auto-detection\n const autoShowLegend = alwaysShowLegendTypes.has(effectiveType)\n || definition.series.length > 1\n || definition.series.some(s => s.splitByDimension);\n const showLegend = appearance?.showLegend ?? autoShowLegend;\n\n // Tooltip visibility\n const showTooltip = appearance?.showTooltip ?? true;\n\n // Grid padding\n const grid = resolveGridPadding(preset, appearance, definition.series.length);\n\n // Animation (per-chart overrides → preset defaults)\n const animated = appearance?.animated ?? preset.animation.enabled;\n const animationDuration = appearance?.animationDuration ?? preset.animation.durationMs;\n const animationEasing = appearance?.animationEasing ?? preset.animation.easing;\n\n // Background — must be a concrete color value, not a CSS variable\n // (ECharts renders on canvas which cannot resolve CSS custom properties)\n let backgroundColor: string = 'transparent';\n if (appearance?.background) {\n backgroundColor = appearance.background === 'surface'\n ? resolveCSSColor('--background', '#ffffff')\n : appearance.background;\n }\n\n // ── Title ──────────────────────────────────────────────────\n const titleConfig = appearance?.title;\n const titleText = i18n?.titleKey ? resolveI18nKey(t, i18n.titleKey, titleConfig?.text) : titleConfig?.text;\n const subtitleText = i18n?.subtitleKey ? resolveI18nKey(t, i18n.subtitleKey, titleConfig?.subtext) : titleConfig?.subtext;\n\n // ── Tooltip ────────────────────────────────────────────────\n const tooltipConfig = appearance?.tooltip;\n const autoTrigger = itemTooltipTypes.has(effectiveType) ? 'item' : 'axis';\n\n // ── Legend ─────────────────────────────────────────────────\n const legendConfig = appearance?.legend;\n\n // ── Assemble final ECharts option ─────────────────────────\n const option: Record<string, unknown> = {\n // Chart-specific\n series: result.series,\n\n // ── Title ──\n ...(titleText ? {\n title: {\n text: titleText,\n ...(subtitleText ? { subtext: subtitleText } : {}),\n left: titleConfig?.left ?? 'left',\n ...(titleConfig?.top != null ? { top: titleConfig.top } : {}),\n ...(titleConfig?.textAlign ? { textAlign: titleConfig.textAlign } : {}),\n textStyle: { fontSize: preset.typography.titleFontSize, fontWeight: preset.typography.titleFontWeight },\n subtextStyle: { fontSize: preset.typography.subtitleFontSize },\n },\n } : {}),\n\n // ── Tooltip ──\n tooltip: showTooltip\n ? {\n trigger: tooltipConfig?.trigger ?? autoTrigger,\n confine: tooltipConfig?.confine ?? true,\n ...(tooltipConfig?.formatter ? { formatter: tooltipConfig.formatter } : {}),\n ...(tooltipConfig?.axisPointerType && tooltipConfig.axisPointerType !== 'none'\n ? { axisPointer: { type: tooltipConfig.axisPointerType } }\n : {}),\n }\n : { show: false },\n\n // ── Legend ──\n legend: {\n show: showLegend,\n type: legendConfig?.type ?? 'scroll',\n ...(legendConfig?.position === 'top' ? { top: 0 }\n : legendConfig?.position === 'left' ? { left: 0, orient: 'vertical' }\n : legendConfig?.position === 'right' ? { right: 0, orient: 'vertical' }\n : { bottom: 0 }),\n ...(legendConfig?.orient ? { orient: legendConfig.orient } : {}),\n ...(legendConfig?.itemGap != null ? { itemGap: legendConfig.itemGap } : {}),\n ...(legendConfig?.pageSize != null ? { pageSize: legendConfig.pageSize } : {}),\n // Axis-based multi-series charts legend by SERIES name. Item-trigger families\n // (pie/donut/funnel/radar/…) legend by SLICE name, which ECharts derives from\n // `series.data[].name` when `legend.data` is omitted — forcing the series\n // names here collapsed a pie legend to a single dead entry (the series name)\n // instead of one toggle per slice. (Axis case still filters internal series\n // like `__waterfall_base`.)\n ...(itemTooltipTypes.has(effectiveType)\n ? {}\n : {\n data: (result.series as Array<{ name?: string }>)\n .map(s => s.name)\n .filter((n): n is string => typeof n === 'string' && !n.startsWith('__')),\n }),\n },\n\n // ── Grid ──\n grid: {\n ...grid,\n containLabel: true,\n },\n\n // ── Background ──\n ...(backgroundColor !== 'transparent' ? { backgroundColor } : {}),\n\n // ── Animation (per-chart overrides → preset defaults) ──\n animation: animated,\n animationDuration,\n animationEasing,\n\n // ── Responsive ──\n // Only cartesian charts (those whose builder emitted an x/y axis) may carry\n // the axis-label responsive override; feeding it to a non-cartesian family\n // materializes an orphan `xAxis` and crashes ECharts' CartesianAxisView.\n // Pie/donut additionally compensate for the legend hidden on small\n // containers (inside percent-only slice labels). See buildResponsiveMedia.\n media: buildResponsiveMedia(\n preset,\n Boolean(result.xAxis || result.yAxis),\n effectiveType === ChartType.PIE || effectiveType === ChartType.DONUT,\n ),\n };\n\n // ── Toolbox ──\n if (appearance?.toolbox?.show) {\n const tb = appearance.toolbox;\n option.toolbox = {\n show: true,\n right: tb.right ?? 10,\n top: tb.top ?? 10,\n feature: {\n ...(tb.saveAsImage ? { saveAsImage: { type: 'png' } } : {}),\n ...(tb.dataView ? { dataView: { readOnly: true } } : {}),\n ...(tb.restore ? { restore: {} } : {}),\n ...(tb.magicType?.length ? { magicType: { type: tb.magicType } } : {}),\n },\n };\n }\n\n // ── Data Zoom ──\n if (appearance?.dataZoom?.enabled) {\n const dz = appearance.dataZoom;\n const dzTypes = dz.type ?? ['slider'];\n const dataZoomArr: unknown[] = [];\n for (const dzType of dzTypes) {\n const base = {\n type: dzType,\n start: dz.start ?? 0,\n end: dz.end ?? 100,\n };\n if (dz.axis === 'both' || dz.axis === 'x' || !dz.axis) {\n dataZoomArr.push({ ...base, xAxisIndex: 0 });\n }\n if (dz.axis === 'both' || dz.axis === 'y') {\n dataZoomArr.push({ ...base, yAxisIndex: 0 });\n }\n }\n option.dataZoom = dataZoomArr;\n }\n\n // ── Add axes if provided by builder ──\n if (result.xAxis) option.xAxis = result.xAxis;\n if (result.yAxis) option.yAxis = result.yAxis;\n if (result.radar) option.radar = result.radar;\n\n // Copy any extra keys from builder result\n for (const [key, value] of Object.entries(result)) {\n if (!['series', 'xAxis', 'yAxis', 'radar'].includes(key) && !key.startsWith('_')) {\n option[key] = value;\n }\n }\n\n return option;\n}\n\n// ── Helper: resolve an i18n key with fallback ────────────────\n\n/** Try to resolve an i18n key. If the resolved string equals the key (unresolved), use fallback. */\nfunction resolveI18nKey(t: ChartI18nResolver, key: string, fallback?: string): string | undefined {\n const resolved = t(key);\n // If the resolver returned the key itself, it was not found — use fallback\n return resolved !== key ? resolved : fallback;\n}\n"]}
1
+ {"version":3,"file":"echarts-option-builder.js","sourceRoot":"","sources":["../../../../../../../src/components/views/chart-view/option-builder/echarts-option-builder.ts"],"names":[],"mappings":"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","sourcesContent":["/** ──────────────────────────────────────────────────────────────\n * EChartsOptionBuilder — Registry + common post-processing\n * \n * Dispatches to the right ChartTypeBuilder by ChartType,\n * then applies common tooltip, legend, grid, and responsive media.\n * \n * Precedence model (later wins):\n * 1. ECharts built-in defaults\n * 2. Wildo registered theme (from buildWildoTheme)\n * 3. ChartStylePreset from current ComponentStyleTheme\n * 4. ChartDefinition.appearance (per-chart config)\n * 5. ChartDefinition.series[].style (per-series)\n * 6. ChartDefinition.series[].splitConfig.colorMap\n * ────────────────────────────────────────────────────────────── */\n\nimport { ChartType } from '@wildo-ai/saas-models';\nimport type { AggregationQueryResponse, ChartAppearance } from '@wildo-ai/saas-models';\nimport type { ChartDefinition } from '@wildo-ai/saas-models';\nimport type { ChartStylePreset } from '@wildo-ai/presets-components-models';\nimport type { ChartTypeBuilder, ChartBuildContext, ChartI18nResolver } from './chart-type-builder.interface';\nimport type { DimensionEnumMeta } from '~wildo-frontend-lib/components/views/chart-view/enum-color-bridge';\nimport { buildResponsiveMedia, sortRowsByDimensionOrder } from './builder-utils';\nimport { getChartColorPalette, getDefaultChartStylePreset, resolveCSSColor } from '~wildo-frontend-lib/components/views/chart-view/chart-theme-bridge';\n\n// Import builders\nimport { BarFamilyBuilder } from './builders/bar-family.builder';\nimport { LineFamilyBuilder } from './builders/line-family.builder';\nimport { PieFamilyBuilder } from './builders/pie-family.builder';\nimport { ScatterFamilyBuilder } from './builders/scatter-family.builder';\nimport { GaugeBuilder } from './builders/gauge.builder';\nimport { FunnelBuilder } from './builders/funnel.builder';\nimport { RadarBuilder } from './builders/radar.builder';\nimport { SankeyBuilder } from './builders/sankey.builder';\nimport { HierarchicalFamilyBuilder } from './builders/hierarchical-family.builder';\nimport { HeatmapBuilder } from './builders/heatmap.builder';\nimport { StatisticalFamilyBuilder } from './builders/statistical-family.builder';\nimport { ParallelBuilder } from './builders/parallel.builder';\nimport { ComposedBuilder } from './builders/composed.builder';\n\n// ── Builder Registry ─────────────────────────────────────────\n\nconst builders: ChartTypeBuilder[] = [\n new BarFamilyBuilder(),\n new LineFamilyBuilder(),\n new PieFamilyBuilder(),\n new ScatterFamilyBuilder(),\n new GaugeBuilder(),\n new FunnelBuilder(),\n new RadarBuilder(),\n new SankeyBuilder(),\n new HierarchicalFamilyBuilder(),\n new HeatmapBuilder(),\n new StatisticalFamilyBuilder(),\n new ParallelBuilder(),\n new ComposedBuilder(),\n];\n\nconst builderMap = new Map<string, ChartTypeBuilder>();\nfor (const builder of builders) {\n for (const type of builder.supportedTypes) {\n builderMap.set(type, builder);\n }\n}\n\n/** Chart types that use 'item' trigger for tooltip (vs 'axis') */\nconst itemTooltipTypes = new Set<string>([\n 'pie', 'donut', 'funnel', 'radar', 'sankey', 'sunburst', 'treemap', 'gauge', 'heatmap',\n]);\n\n/** Chart types that always show legend */\nconst alwaysShowLegendTypes = new Set<string>([\n 'pie', 'donut', 'funnel', 'sankey',\n]);\n\n// ── Helpers ───────────────────────────────────────────────────\n\n/** Resolve grid padding: preset defaults → appearance overrides */\nfunction resolveGridPadding(\n preset: ChartStylePreset,\n appearance?: ChartAppearance,\n seriesCount?: number,\n): { top: number; right: number; bottom: number; left: number } {\n const base = { ...preset.gridPadding };\n // Adjust bottom for multi-series legend\n if (seriesCount && seriesCount > 1) {\n base.bottom = Math.max(base.bottom, preset.multiSeriesLegendBottomPadding ?? 50);\n }\n // Apply per-chart overrides\n if (appearance?.gridPadding) {\n const o = appearance.gridPadding;\n if (o.top !== undefined) base.top = o.top;\n if (o.right !== undefined) base.right = o.right;\n if (o.bottom !== undefined) base.bottom = o.bottom;\n if (o.left !== undefined) base.left = o.left;\n }\n return base;\n}\n\n// ── Main Builder Function ────────────────────────────────────\n\n/** Identity i18n fallback — returns the key unchanged */\nconst identityT: ChartI18nResolver = (key) => key;\n\n/**\n * Build a complete ECharts option from a ChartDefinition + data response.\n * \n * @param chartStylePreset - Resolved preset from the current theme (or default)\n * @param t - i18n resolver function (from useI18n). Defaults to identity fallback.\n * @param locale - the reader's formatting locale (`useI18n().resolvedRegionalPreferences.locale`), for axis\n * labels the builders format themselves (#2258). Omitted, `Intl` uses the runtime default.\n */\nexport function buildEChartsOption(\n definition: ChartDefinition,\n response: AggregationQueryResponse,\n containerSize: { width: number; height: number } = { width: 800, height: 400 },\n chartStylePreset?: ChartStylePreset,\n t: ChartI18nResolver = identityT,\n dimensionEnumMeta: DimensionEnumMeta = { colors: {}, order: {}, labels: {} },\n locale?: string,\n): Record<string, unknown> {\n const preset = chartStylePreset ?? getDefaultChartStylePreset();\n const appearance = definition.appearance;\n const i18n = definition.i18n;\n\n // Enum-order sort (at the data boundary so every family inherits it): when the\n // primary dimension is an enum, order rows by the enum's DECLARED member order\n // (LOW → MEDIUM → HIGH → URGENT) instead of the backend's natural order. An\n // explicit authored `dataQuery.orderBy` wins — we never override intentional\n // sorting. Both the category axis and the series data derive from these rows,\n // so sorting once keeps them aligned.\n const primaryDimRef = definition.dataQuery.dimensions[0]?.ref;\n const enumOrder = primaryDimRef ? dimensionEnumMeta.order[primaryDimRef] : undefined;\n const hasExplicitOrderBy = Array.isArray(definition.dataQuery.orderBy) && definition.dataQuery.orderBy.length > 0;\n const orderedResponse = (primaryDimRef && enumOrder && !hasExplicitOrderBy)\n ? { ...response, data: sortRowsByDimensionOrder(response.data, primaryDimRef, enumOrder) }\n : response;\n\n // Color palette: per-chart override → design token system\n const colorPalette = appearance?.colorPalette?.length\n ? appearance.colorPalette\n : getChartColorPalette(preset);\n\n // Resolve effective chart type for each series\n // For COMPOSED charts, series have individual chartTypes\n const effectiveType = definition.chartType;\n\n const builder = builderMap.get(effectiveType);\n if (!builder) {\n console.warn(`EChartsOptionBuilder: no builder for chart type '${effectiveType}'`);\n return { series: [] };\n }\n\n const context: ChartBuildContext = {\n definition,\n response: orderedResponse,\n containerSize,\n colorPalette,\n chartStylePreset: preset,\n t,\n dimensionEnumColors: dimensionEnumMeta.colors,\n dimensionEnumLabels: dimensionEnumMeta.labels,\n locale,\n };\n\n // Build chart-specific config\n const result = builder.build(context, definition.series);\n\n // Legend visibility: appearance override → auto-detection\n const autoShowLegend = alwaysShowLegendTypes.has(effectiveType)\n || definition.series.length > 1\n || definition.series.some(s => s.splitByDimension);\n const showLegend = appearance?.showLegend ?? autoShowLegend;\n\n // Tooltip visibility\n const showTooltip = appearance?.showTooltip ?? true;\n\n // Grid padding\n const grid = resolveGridPadding(preset, appearance, definition.series.length);\n\n // Animation (per-chart overrides → preset defaults)\n const animated = appearance?.animated ?? preset.animation.enabled;\n const animationDuration = appearance?.animationDuration ?? preset.animation.durationMs;\n const animationEasing = appearance?.animationEasing ?? preset.animation.easing;\n\n // Background — must be a concrete color value, not a CSS variable\n // (ECharts renders on canvas which cannot resolve CSS custom properties)\n let backgroundColor: string = 'transparent';\n if (appearance?.background) {\n backgroundColor = appearance.background === 'surface'\n ? resolveCSSColor('--background', '#ffffff')\n : appearance.background;\n }\n\n // ── Title ──────────────────────────────────────────────────\n const titleConfig = appearance?.title;\n const titleText = i18n?.titleKey ? resolveI18nKey(t, i18n.titleKey, titleConfig?.text) : titleConfig?.text;\n const subtitleText = i18n?.subtitleKey ? resolveI18nKey(t, i18n.subtitleKey, titleConfig?.subtext) : titleConfig?.subtext;\n\n // ── Tooltip ────────────────────────────────────────────────\n const tooltipConfig = appearance?.tooltip;\n const autoTrigger = itemTooltipTypes.has(effectiveType) ? 'item' : 'axis';\n\n // ── Legend ─────────────────────────────────────────────────\n const legendConfig = appearance?.legend;\n\n // ── Assemble final ECharts option ─────────────────────────\n const option: Record<string, unknown> = {\n // Chart-specific\n series: result.series,\n\n // ── Title ──\n ...(titleText ? {\n title: {\n text: titleText,\n ...(subtitleText ? { subtext: subtitleText } : {}),\n left: titleConfig?.left ?? 'left',\n ...(titleConfig?.top != null ? { top: titleConfig.top } : {}),\n ...(titleConfig?.textAlign ? { textAlign: titleConfig.textAlign } : {}),\n textStyle: { fontSize: preset.typography.titleFontSize, fontWeight: preset.typography.titleFontWeight },\n subtextStyle: { fontSize: preset.typography.subtitleFontSize },\n },\n } : {}),\n\n // ── Tooltip ──\n tooltip: showTooltip\n ? {\n trigger: tooltipConfig?.trigger ?? autoTrigger,\n confine: tooltipConfig?.confine ?? true,\n ...(tooltipConfig?.formatter ? { formatter: tooltipConfig.formatter } : {}),\n ...(tooltipConfig?.axisPointerType && tooltipConfig.axisPointerType !== 'none'\n ? { axisPointer: { type: tooltipConfig.axisPointerType } }\n : {}),\n }\n : { show: false },\n\n // ── Legend ──\n legend: {\n show: showLegend,\n type: legendConfig?.type ?? 'scroll',\n ...(legendConfig?.position === 'top' ? { top: 0 }\n : legendConfig?.position === 'left' ? { left: 0, orient: 'vertical' }\n : legendConfig?.position === 'right' ? { right: 0, orient: 'vertical' }\n : { bottom: 0 }),\n ...(legendConfig?.orient ? { orient: legendConfig.orient } : {}),\n ...(legendConfig?.itemGap != null ? { itemGap: legendConfig.itemGap } : {}),\n ...(legendConfig?.pageSize != null ? { pageSize: legendConfig.pageSize } : {}),\n // Axis-based multi-series charts legend by SERIES name. Item-trigger families\n // (pie/donut/funnel/radar/…) legend by SLICE name, which ECharts derives from\n // `series.data[].name` when `legend.data` is omitted — forcing the series\n // names here collapsed a pie legend to a single dead entry (the series name)\n // instead of one toggle per slice. (Axis case still filters internal series\n // like `__waterfall_base`.)\n ...(itemTooltipTypes.has(effectiveType)\n ? {}\n : {\n data: (result.series as Array<{ name?: string }>)\n .map(s => s.name)\n .filter((n): n is string => typeof n === 'string' && !n.startsWith('__')),\n }),\n },\n\n // ── Grid ──\n grid: {\n ...grid,\n containLabel: true,\n },\n\n // ── Background ──\n ...(backgroundColor !== 'transparent' ? { backgroundColor } : {}),\n\n // ── Animation (per-chart overrides → preset defaults) ──\n animation: animated,\n animationDuration,\n animationEasing,\n\n // ── Responsive ──\n // Only cartesian charts (those whose builder emitted an x/y axis) may carry\n // the axis-label responsive override; feeding it to a non-cartesian family\n // materializes an orphan `xAxis` and crashes ECharts' CartesianAxisView.\n // Pie/donut additionally compensate for the legend hidden on small\n // containers (inside percent-only slice labels). See buildResponsiveMedia.\n media: buildResponsiveMedia(\n preset,\n Boolean(result.xAxis || result.yAxis),\n effectiveType === ChartType.PIE || effectiveType === ChartType.DONUT,\n ),\n };\n\n // ── Toolbox ──\n if (appearance?.toolbox?.show) {\n const tb = appearance.toolbox;\n option.toolbox = {\n show: true,\n right: tb.right ?? 10,\n top: tb.top ?? 10,\n feature: {\n ...(tb.saveAsImage ? { saveAsImage: { type: 'png' } } : {}),\n ...(tb.dataView ? { dataView: { readOnly: true } } : {}),\n ...(tb.restore ? { restore: {} } : {}),\n ...(tb.magicType?.length ? { magicType: { type: tb.magicType } } : {}),\n },\n };\n }\n\n // ── Data Zoom ──\n if (appearance?.dataZoom?.enabled) {\n const dz = appearance.dataZoom;\n const dzTypes = dz.type ?? ['slider'];\n const dataZoomArr: unknown[] = [];\n for (const dzType of dzTypes) {\n const base = {\n type: dzType,\n start: dz.start ?? 0,\n end: dz.end ?? 100,\n };\n if (dz.axis === 'both' || dz.axis === 'x' || !dz.axis) {\n dataZoomArr.push({ ...base, xAxisIndex: 0 });\n }\n if (dz.axis === 'both' || dz.axis === 'y') {\n dataZoomArr.push({ ...base, yAxisIndex: 0 });\n }\n }\n option.dataZoom = dataZoomArr;\n }\n\n // ── Add axes if provided by builder ──\n if (result.xAxis) option.xAxis = result.xAxis;\n if (result.yAxis) option.yAxis = result.yAxis;\n if (result.radar) option.radar = result.radar;\n\n // Copy any extra keys from builder result\n for (const [key, value] of Object.entries(result)) {\n if (!['series', 'xAxis', 'yAxis', 'radar'].includes(key) && !key.startsWith('_')) {\n option[key] = value;\n }\n }\n\n return option;\n}\n\n// ── Helper: resolve an i18n key with fallback ────────────────\n\n/** Try to resolve an i18n key. If the resolved string equals the key (unresolved), use fallback. */\nfunction resolveI18nKey(t: ChartI18nResolver, key: string, fallback?: string): string | undefined {\n const resolved = t(key);\n // If the resolver returned the key itself, it was not found — use fallback\n return resolved !== key ? resolved : fallback;\n}\n"]}
@@ -41,7 +41,6 @@ export interface CompositeLayoutContainerConfigOverrides {
41
41
  completedIcon?: React.ReactNode;
42
42
  nextLabel?: string;
43
43
  previousLabel?: string;
44
- completeLabel?: string;
45
44
  /**
46
45
  * CONTROLLED active section for the navigation modes (TABS / VERTICAL_TABS / PILLS) — see the
47
46
  * seam's contract on the section configs (`frontend-forms.shared.schemas.ts`). Rides the same
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/composite-view/CompositeLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAuBxF,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,EAAE,uCAAuC,CAAC;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,qEAAqE;QACrE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;QAC7B,eAAe,CAAC,EAAE,uCAAuC,CAAC;KAC3D,CAAC,CAAC;IACH;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,GAChB,EAAE,oBAAoB,GAAG,SAAS,CAsElC"}
1
+ {"version":3,"file":"CompositeLayout.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/composite-view/CompositeLayout.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAuBxF,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,EAAE,uCAAuC,CAAC;IAC1D,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC/B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;QACvB,qEAAqE;QACrE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,gBAAgB,CAAC;QAC7B,eAAe,CAAC,EAAE,uCAAuC,CAAC;KAC3D,CAAC,CAAC;IACH;;;;;OAKG;IACH,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,KAAK,IAAI,CAAC;CAC1D;AAED,MAAM,WAAW,uCAAuC;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,QAAQ,EACR,eAAe,EACf,eAAe,EACf,eAAe,GAChB,EAAE,oBAAoB,GAAG,SAAS,CAsElC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeLayout.js","sourceRoot":"","sources":["../../../../../../src/components/views/composite-view/CompositeLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { IndicatorVariant } from '@wildo-ai/presets-components-models';\nimport React, { useMemo, type ReactNode } from 'react';\nimport type { ExpandTrigger, SectionConfig } from '@wildo-ai/presets-components-models';\nimport { LabellingTypes } from '@wildo-ai/presets-components-models';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\n\nimport {\n ContentSectionContainer,\n type ContentSectionDescriptor,\n} from '~wildo-frontend-lib/components/sections/ContentSectionContainer';\n\nimport {\n buildSectionConfigFromGroup,\n groupSectionsByAppearance,\n type SectionGroup,\n} from '~wildo-frontend-lib/components/resources/skeleton/section-consolidation.utils';\nimport { GroupedSectionBody, type SectionProps } from '~wildo-frontend-lib/components/resources/skeleton/Section';\nimport { GroupedSectionHostKind } from '~wildo-frontend-lib/components/resources/skeleton/Section.shared';\nimport {\n SectionPresentationProvider,\n type SectionPresentationEntry,\n} from '~wildo-frontend-lib/components/resources/skeleton/SectionPresentationContext';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useOptionalCompositeViewContext } from './CompositeViewContext';\n\nexport interface CompositeLayoutProps {\n className?: string;\n children?: ReactNode;\n containerConfig?: CompositeLayoutContainerConfigOverrides;\n sectionMetadata?: Record<string, {\n icon?: React.ReactNode;\n /** How many things wait in the section, shown on its tab (#1325). */\n count?: number;\n countTone?: IndicatorVariant;\n containerConfig?: CompositeLayoutContainerConfigOverrides;\n }>;\n /**\n * Forwarded to every section-group container (creation-board plan, Phase 4). Pairs with the\n * `activeSection` override to complete the CONTROLLED contract: an owner that passes\n * `activeSection` receives every change request here and applies it (typically to the URL);\n * ignoring the callback while controlling the value freezes the tabs.\n */\n onSectionChange?: (sectionId: string | string[]) => void;\n}\n\nexport interface CompositeLayoutContainerConfigOverrides {\n animated?: boolean;\n persistState?: boolean;\n storageKey?: string;\n hideWhenEmpty?: boolean;\n showSingleSectionNav?: boolean;\n fallbackMode?: SectionConfig['mode'];\n emptyStateMessage?: string;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n triggerLabel?: { open: string; closed: string };\n allowNone?: boolean;\n expandTrigger?: ExpandTrigger;\n showMoreLabel?: string;\n showLessLabel?: string;\n completedIcon?: React.ReactNode;\n nextLabel?: string;\n previousLabel?: string;\n completeLabel?: string;\n /**\n * CONTROLLED active section for the navigation modes (TABS / VERTICAL_TABS / PILLS) — see the\n * seam's contract on the section configs (`frontend-forms.shared.schemas.ts`). Rides the same\n * override merge every other container knob uses, so a composite OWNER can drive the active tab\n * (deep links, cross-pane navigation) without a bespoke channel.\n */\n activeSection?: string;\n}\n\nexport function CompositeLayout({\n className,\n children,\n containerConfig,\n sectionMetadata,\n onSectionChange,\n}: CompositeLayoutProps): ReactNode {\n const compositeViewContext = useOptionalCompositeViewContext();\n const compositeTranslationRef = compositeViewContext?.viewDefinition.translationRef;\n const compositeLabelKeys = useMemo(\n () => (\n compositeTranslationRef\n ? [`${LabellingTypes.COMPOSITE_VIEWS}.${compositeTranslationRef}`]\n : []\n ),\n [compositeTranslationRef],\n );\n const { tCompositeViewSection } = useI18n({ keys: compositeLabelKeys });\n const sectionPresentation = useMemo<Record<string, SectionPresentationEntry> | undefined>(() => {\n const sectionRefs = new Set<string>([\n ...Object.keys(sectionMetadata ?? {}),\n ...(compositeViewContext?.viewDefinition.sectionRefs ?? []),\n ]);\n if (sectionRefs.size === 0) {\n return undefined;\n }\n\n /*\n * Words are resolved only for DECLARED section refs. The labelling pipeline plans\n * `composite_views.<ref>.sections.<section>.*` from `viewDefinition.sectionRefs` and from nothing\n * else, so a name that reaches this map through `sectionMetadata` alone has no label anyone could\n * generate — and since #1450 a missing title is its key path, it would show one forever. Such a\n * section keeps its icon and count and stays untitled, as it always was.\n */\n const declaredSectionRefs = new Set<string>(compositeViewContext?.viewDefinition.sectionRefs ?? []);\n return Object.fromEntries(\n Array.from(sectionRefs).map((sectionName) => [\n sectionName,\n {\n title: compositeTranslationRef && declaredSectionRefs.has(sectionName)\n ? tCompositeViewSection(compositeTranslationRef, sectionName, 'title')\n : undefined,\n description: compositeTranslationRef && declaredSectionRefs.has(sectionName)\n ? tCompositeViewSection(compositeTranslationRef, sectionName, 'description')\n : undefined,\n icon: sectionMetadata?.[sectionName]?.icon,\n count: sectionMetadata?.[sectionName]?.count,\n countTone: sectionMetadata?.[sectionName]?.countTone,\n },\n ]),\n );\n }, [\n compositeTranslationRef,\n compositeViewContext?.viewDefinition.sectionRefs,\n sectionMetadata,\n tCompositeViewSection,\n ]);\n const renderedChildren = useMemo(\n () => renderGroupedChildren(children, containerConfig, sectionPresentation, sectionMetadata, onSectionChange),\n [children, containerConfig, sectionPresentation, sectionMetadata, onSectionChange],\n );\n\n return (\n <SectionPresentationProvider value={{ sectionEntries: sectionPresentation }}>\n {/*\n Sections stack with the SAME rhythm `DisplayLayout` and `FormLayout` give theirs. This root had no\n spacing at all, so every composite's sections touched: measured on Wonder Todos, a todo's\n \"Supporting Tasks\" list ran straight into the \"Progress Metrics\" heading below it. A flex column\n with `gap` rather than `space-y`, because a section's content is often behind a `LoadingGate`,\n whose ready wrapper is `display: contents` — a flex gap spaces its children, a margin cannot.\n */}\n <div className={cn('flex flex-col gap-section', className)} data-composite-layout>\n {renderedChildren}\n </div>\n </SectionPresentationProvider>\n );\n}\n\nfunction renderGroupedChildren(\n children: ReactNode,\n containerConfig?: CompositeLayoutProps['containerConfig'],\n sectionPresentation?: Record<string, SectionPresentationEntry>,\n sectionMetadata?: CompositeLayoutProps['sectionMetadata'],\n onSectionChange?: CompositeLayoutProps['onSectionChange'],\n): ReactNode {\n const grouped = groupSectionsByAppearance(children);\n\n return (\n <>\n {grouped.items.map((item, idx) => {\n if (item.type === 'node') {\n return <React.Fragment key={idx}>{item.node}</React.Fragment>;\n }\n\n const { group } = item;\n const groupedSections = splitCompositeSectionGroupByMetadata(group.sections, sectionMetadata);\n\n return groupedSections.map((sectionGroup, groupIndex) => {\n const config = mergeCompositeLayoutContainerConfig(\n buildSectionConfigFromGroup({\n ...group,\n sections: sectionGroup,\n } as SectionGroup),\n resolveCompositeLayoutContainerConfig(sectionGroup, containerConfig, sectionMetadata),\n );\n\n const sections: ContentSectionDescriptor[] = sectionGroup.map((section) => (\n buildContentSectionFromLayoutSection(section, sectionPresentation)\n ));\n\n return (\n <ContentSectionContainer\n key={`composite-group-${group.mode}-${idx}-${groupIndex}`}\n sections={sections}\n config={config}\n onSectionChange={onSectionChange}\n />\n );\n });\n })}\n </>\n );\n}\n\nfunction buildContentSectionFromLayoutSection(\n section: React.ReactElement<SectionProps>,\n sectionPresentation?: Record<string, SectionPresentationEntry>,\n): ContentSectionDescriptor {\n const metadata = sectionPresentation?.[section.props.name];\n\n return {\n id: section.props.name,\n title: metadata?.title,\n description: metadata?.description,\n icon: metadata?.icon,\n count: metadata?.count,\n countTone: metadata?.countTone,\n disabled: section.props.disabled,\n content: (\n <GroupedSectionBody\n hostKind={GroupedSectionHostKind.COMPOSITE}\n sectionProps={section.props}\n providesHeading={!!metadata?.title}\n />\n ),\n };\n}\n\nfunction resolveCompositeLayoutContainerConfig(\n sections: React.ReactElement<SectionProps>[],\n containerConfig?: CompositeLayoutProps['containerConfig'],\n sectionMetadata?: CompositeLayoutProps['sectionMetadata'],\n): CompositeLayoutContainerConfigOverrides | undefined {\n const anchoredOverrides = sections\n .map((section) => sectionMetadata?.[section.props.name]?.containerConfig)\n .find((value) => value !== undefined);\n\n if (!containerConfig && !anchoredOverrides) {\n return undefined;\n }\n\n return {\n ...containerConfig,\n ...anchoredOverrides,\n };\n}\n\nfunction mergeCompositeLayoutContainerConfig(\n config: SectionConfig,\n overrides?: CompositeLayoutContainerConfigOverrides,\n): SectionConfig {\n if (!overrides) {\n return config;\n }\n\n return {\n ...config,\n ...overrides,\n } as SectionConfig;\n}\n\nfunction splitCompositeSectionGroupByMetadata(\n sections: React.ReactElement<SectionProps>[],\n sectionMetadata?: CompositeLayoutProps['sectionMetadata'],\n): React.ReactElement<SectionProps>[][] {\n const groups: React.ReactElement<SectionProps>[][] = [];\n\n for (const section of sections) {\n const metadataOverrideKey = JSON.stringify(\n sectionMetadata?.[section.props.name]?.containerConfig ?? null,\n );\n const previousGroup = groups[groups.length - 1];\n if (!previousGroup) {\n groups.push([section]);\n continue;\n }\n\n const previousSection = previousGroup[previousGroup.length - 1];\n const previousOverrideKey = JSON.stringify(\n sectionMetadata?.[previousSection.props.name]?.containerConfig ?? null,\n );\n\n if (previousOverrideKey === metadataOverrideKey) {\n previousGroup.push(section);\n continue;\n }\n\n groups.push([section]);\n }\n\n return groups;\n}\n"]}
1
+ {"version":3,"file":"CompositeLayout.js","sourceRoot":"","sources":["../../../../../../src/components/views/composite-view/CompositeLayout.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client';\n\nimport type { IndicatorVariant } from '@wildo-ai/presets-components-models';\nimport React, { useMemo, type ReactNode } from 'react';\nimport type { ExpandTrigger, SectionConfig } from '@wildo-ai/presets-components-models';\nimport { LabellingTypes } from '@wildo-ai/presets-components-models';\nimport { cn } from '~wildo-frontend-lib/core/ui/cn';\n\nimport {\n ContentSectionContainer,\n type ContentSectionDescriptor,\n} from '~wildo-frontend-lib/components/sections/ContentSectionContainer';\n\nimport {\n buildSectionConfigFromGroup,\n groupSectionsByAppearance,\n type SectionGroup,\n} from '~wildo-frontend-lib/components/resources/skeleton/section-consolidation.utils';\nimport { GroupedSectionBody, type SectionProps } from '~wildo-frontend-lib/components/resources/skeleton/Section';\nimport { GroupedSectionHostKind } from '~wildo-frontend-lib/components/resources/skeleton/Section.shared';\nimport {\n SectionPresentationProvider,\n type SectionPresentationEntry,\n} from '~wildo-frontend-lib/components/resources/skeleton/SectionPresentationContext';\nimport { useI18n } from '~wildo-frontend-lib/core/i18n/useI18n';\nimport { useOptionalCompositeViewContext } from './CompositeViewContext';\n\nexport interface CompositeLayoutProps {\n className?: string;\n children?: ReactNode;\n containerConfig?: CompositeLayoutContainerConfigOverrides;\n sectionMetadata?: Record<string, {\n icon?: React.ReactNode;\n /** How many things wait in the section, shown on its tab (#1325). */\n count?: number;\n countTone?: IndicatorVariant;\n containerConfig?: CompositeLayoutContainerConfigOverrides;\n }>;\n /**\n * Forwarded to every section-group container (creation-board plan, Phase 4). Pairs with the\n * `activeSection` override to complete the CONTROLLED contract: an owner that passes\n * `activeSection` receives every change request here and applies it (typically to the URL);\n * ignoring the callback while controlling the value freezes the tabs.\n */\n onSectionChange?: (sectionId: string | string[]) => void;\n}\n\nexport interface CompositeLayoutContainerConfigOverrides {\n animated?: boolean;\n persistState?: boolean;\n storageKey?: string;\n hideWhenEmpty?: boolean;\n showSingleSectionNav?: boolean;\n fallbackMode?: SectionConfig['mode'];\n emptyStateMessage?: string;\n ariaLabel?: string;\n ariaLabelledBy?: string;\n triggerLabel?: { open: string; closed: string };\n allowNone?: boolean;\n expandTrigger?: ExpandTrigger;\n showMoreLabel?: string;\n showLessLabel?: string;\n completedIcon?: React.ReactNode;\n nextLabel?: string;\n previousLabel?: string;\n /**\n * CONTROLLED active section for the navigation modes (TABS / VERTICAL_TABS / PILLS) — see the\n * seam's contract on the section configs (`frontend-forms.shared.schemas.ts`). Rides the same\n * override merge every other container knob uses, so a composite OWNER can drive the active tab\n * (deep links, cross-pane navigation) without a bespoke channel.\n */\n activeSection?: string;\n}\n\nexport function CompositeLayout({\n className,\n children,\n containerConfig,\n sectionMetadata,\n onSectionChange,\n}: CompositeLayoutProps): ReactNode {\n const compositeViewContext = useOptionalCompositeViewContext();\n const compositeTranslationRef = compositeViewContext?.viewDefinition.translationRef;\n const compositeLabelKeys = useMemo(\n () => (\n compositeTranslationRef\n ? [`${LabellingTypes.COMPOSITE_VIEWS}.${compositeTranslationRef}`]\n : []\n ),\n [compositeTranslationRef],\n );\n const { tCompositeViewSection } = useI18n({ keys: compositeLabelKeys });\n const sectionPresentation = useMemo<Record<string, SectionPresentationEntry> | undefined>(() => {\n const sectionRefs = new Set<string>([\n ...Object.keys(sectionMetadata ?? {}),\n ...(compositeViewContext?.viewDefinition.sectionRefs ?? []),\n ]);\n if (sectionRefs.size === 0) {\n return undefined;\n }\n\n /*\n * Words are resolved only for DECLARED section refs. The labelling pipeline plans\n * `composite_views.<ref>.sections.<section>.*` from `viewDefinition.sectionRefs` and from nothing\n * else, so a name that reaches this map through `sectionMetadata` alone has no label anyone could\n * generate — and since #1450 a missing title is its key path, it would show one forever. Such a\n * section keeps its icon and count and stays untitled, as it always was.\n */\n const declaredSectionRefs = new Set<string>(compositeViewContext?.viewDefinition.sectionRefs ?? []);\n return Object.fromEntries(\n Array.from(sectionRefs).map((sectionName) => [\n sectionName,\n {\n title: compositeTranslationRef && declaredSectionRefs.has(sectionName)\n ? tCompositeViewSection(compositeTranslationRef, sectionName, 'title')\n : undefined,\n description: compositeTranslationRef && declaredSectionRefs.has(sectionName)\n ? tCompositeViewSection(compositeTranslationRef, sectionName, 'description')\n : undefined,\n icon: sectionMetadata?.[sectionName]?.icon,\n count: sectionMetadata?.[sectionName]?.count,\n countTone: sectionMetadata?.[sectionName]?.countTone,\n },\n ]),\n );\n }, [\n compositeTranslationRef,\n compositeViewContext?.viewDefinition.sectionRefs,\n sectionMetadata,\n tCompositeViewSection,\n ]);\n const renderedChildren = useMemo(\n () => renderGroupedChildren(children, containerConfig, sectionPresentation, sectionMetadata, onSectionChange),\n [children, containerConfig, sectionPresentation, sectionMetadata, onSectionChange],\n );\n\n return (\n <SectionPresentationProvider value={{ sectionEntries: sectionPresentation }}>\n {/*\n Sections stack with the SAME rhythm `DisplayLayout` and `FormLayout` give theirs. This root had no\n spacing at all, so every composite's sections touched: measured on Wonder Todos, a todo's\n \"Supporting Tasks\" list ran straight into the \"Progress Metrics\" heading below it. A flex column\n with `gap` rather than `space-y`, because a section's content is often behind a `LoadingGate`,\n whose ready wrapper is `display: contents` — a flex gap spaces its children, a margin cannot.\n */}\n <div className={cn('flex flex-col gap-section', className)} data-composite-layout>\n {renderedChildren}\n </div>\n </SectionPresentationProvider>\n );\n}\n\nfunction renderGroupedChildren(\n children: ReactNode,\n containerConfig?: CompositeLayoutProps['containerConfig'],\n sectionPresentation?: Record<string, SectionPresentationEntry>,\n sectionMetadata?: CompositeLayoutProps['sectionMetadata'],\n onSectionChange?: CompositeLayoutProps['onSectionChange'],\n): ReactNode {\n const grouped = groupSectionsByAppearance(children);\n\n return (\n <>\n {grouped.items.map((item, idx) => {\n if (item.type === 'node') {\n return <React.Fragment key={idx}>{item.node}</React.Fragment>;\n }\n\n const { group } = item;\n const groupedSections = splitCompositeSectionGroupByMetadata(group.sections, sectionMetadata);\n\n return groupedSections.map((sectionGroup, groupIndex) => {\n const config = mergeCompositeLayoutContainerConfig(\n buildSectionConfigFromGroup({\n ...group,\n sections: sectionGroup,\n } as SectionGroup),\n resolveCompositeLayoutContainerConfig(sectionGroup, containerConfig, sectionMetadata),\n );\n\n const sections: ContentSectionDescriptor[] = sectionGroup.map((section) => (\n buildContentSectionFromLayoutSection(section, sectionPresentation)\n ));\n\n return (\n <ContentSectionContainer\n key={`composite-group-${group.mode}-${idx}-${groupIndex}`}\n sections={sections}\n config={config}\n onSectionChange={onSectionChange}\n />\n );\n });\n })}\n </>\n );\n}\n\nfunction buildContentSectionFromLayoutSection(\n section: React.ReactElement<SectionProps>,\n sectionPresentation?: Record<string, SectionPresentationEntry>,\n): ContentSectionDescriptor {\n const metadata = sectionPresentation?.[section.props.name];\n\n return {\n id: section.props.name,\n title: metadata?.title,\n description: metadata?.description,\n icon: metadata?.icon,\n count: metadata?.count,\n countTone: metadata?.countTone,\n disabled: section.props.disabled,\n content: (\n <GroupedSectionBody\n hostKind={GroupedSectionHostKind.COMPOSITE}\n sectionProps={section.props}\n providesHeading={!!metadata?.title}\n />\n ),\n };\n}\n\nfunction resolveCompositeLayoutContainerConfig(\n sections: React.ReactElement<SectionProps>[],\n containerConfig?: CompositeLayoutProps['containerConfig'],\n sectionMetadata?: CompositeLayoutProps['sectionMetadata'],\n): CompositeLayoutContainerConfigOverrides | undefined {\n const anchoredOverrides = sections\n .map((section) => sectionMetadata?.[section.props.name]?.containerConfig)\n .find((value) => value !== undefined);\n\n if (!containerConfig && !anchoredOverrides) {\n return undefined;\n }\n\n return {\n ...containerConfig,\n ...anchoredOverrides,\n };\n}\n\nfunction mergeCompositeLayoutContainerConfig(\n config: SectionConfig,\n overrides?: CompositeLayoutContainerConfigOverrides,\n): SectionConfig {\n if (!overrides) {\n return config;\n }\n\n return {\n ...config,\n ...overrides,\n } as SectionConfig;\n}\n\nfunction splitCompositeSectionGroupByMetadata(\n sections: React.ReactElement<SectionProps>[],\n sectionMetadata?: CompositeLayoutProps['sectionMetadata'],\n): React.ReactElement<SectionProps>[][] {\n const groups: React.ReactElement<SectionProps>[][] = [];\n\n for (const section of sections) {\n const metadataOverrideKey = JSON.stringify(\n sectionMetadata?.[section.props.name]?.containerConfig ?? null,\n );\n const previousGroup = groups[groups.length - 1];\n if (!previousGroup) {\n groups.push([section]);\n continue;\n }\n\n const previousSection = previousGroup[previousGroup.length - 1];\n const previousOverrideKey = JSON.stringify(\n sectionMetadata?.[previousSection.props.name]?.containerConfig ?? null,\n );\n\n if (previousOverrideKey === metadataOverrideKey) {\n previousGroup.push(section);\n continue;\n }\n\n groups.push([section]);\n }\n\n return groups;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"useCompositeResourceOperationContextBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/composite-view/useCompositeResourceOperationContextBuilder.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,uCAAuC,EAC7C,MAAM,4EAA4E,CAAC;AAepF,OAAO,KAAK,EAGV,gCAAgC,EACjC,MAAM,+DAA+D,CAAC;AAGvE,MAAM,MAAM,wCAAwC,GAAG,+BAA+B,GAClF,uCAAuC,GACvC;IACA,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,gCAAgC,CAAC,4BAA4B,CAAC,CAAC;CAC7F,CAAC;AAEJ,MAAM,WAAW,6CAA6C;IAC5D,6BAA6B,EAAE,CAC7B,MAAM,EAAE,wCAAwC,KAC7C,gCAAgC,CAAC;CACvC;AA0LD,wBAAgB,2CAA2C,IAAI,6CAA6C,CAuD3G"}
1
+ {"version":3,"file":"useCompositeResourceOperationContextBuilder.d.ts","sourceRoot":"","sources":["../../../../../../src/components/views/composite-view/useCompositeResourceOperationContextBuilder.ts"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,+BAA+B,EACpC,KAAK,uCAAuC,EAC7C,MAAM,4EAA4E,CAAC;AAgBpF,OAAO,KAAK,EAGV,gCAAgC,EACjC,MAAM,+DAA+D,CAAC;AAGvE,MAAM,MAAM,wCAAwC,GAAG,+BAA+B,GAClF,uCAAuC,GACvC;IACA,YAAY,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,gCAAgC,CAAC,4BAA4B,CAAC,CAAC;CAC7F,CAAC;AAEJ,MAAM,WAAW,6CAA6C;IAC5D,6BAA6B,EAAE,CAC7B,MAAM,EAAE,wCAAwC,KAC7C,gCAAgC,CAAC;CACvC;AA0LD,wBAAgB,2CAA2C,IAAI,6CAA6C,CA6E3G"}
@@ -2,6 +2,7 @@ import { useCallback } from 'react';
2
2
  import { ErrorCustomMessageReference, CoreResourceOperation, } from '@wildo-ai/saas-models';
3
3
  import { useOptionalCompositeViewContext } from './CompositeViewContext.js';
4
4
  import { frontendResourceUtils, FrontendResourceUtils, } from '../../../core/resources/frontend-resource.utils.js';
5
+ import { scopeReferencedRecord } from '../../../core/resources/referenced-record-scope.frontend.utils.js';
5
6
  import { pickPreferredOperationForCoreSemantic, } from '../../../core/resources/operation-semantics.frontend.utils.js';
6
7
  import { isFrontendOperationAddressableForCurrentContext, pickPreferredOperationForCoreSemanticAddressability, shouldRequireCurrentContextAddressabilityForOperation, } from '../../../core/resources/resource-addressability.frontend.utils.js';
7
8
  import { ScopeUtilsService } from '../../../core/scope/scope.utils.frontend.service.js';
@@ -134,9 +135,31 @@ export function useCompositeResourceOperationContextBuilder() {
134
135
  ? FrontendResourceUtils.flattenContextIdentifiers(explicitContextResourceIdentifiers)
135
136
  : undefined;
136
137
  const ambientContextResourceIdentifiers = ScopeUtilsService.mergeContextResourceIdentifiers(undefined, appScope?.buildContextResourceIdentifiers() ?? {}, flattenedExplicitContextResourceIdentifiers) ?? {};
138
+ /*
139
+ * An explicit record id over the INHERITED composite context: a self-referencing parent slot there
140
+ * (`parentUnitId`) describes the record in that context's own-type slot, not this one, so it is kept only when
141
+ * they are the same record (`scopeHostContextToReferencedRecord`, as the reference display and the embed runtime
142
+ * do — #2144). Identifiers the caller passes itself are its own statement and are taken as given.
143
+ *
144
+ * The record the parent slot describes is read from the COMPOSITE's own identifiers, never from the merged map:
145
+ * that map also carries AppScope custom scope, so with no own-type id in the composite it would hold the
146
+ * quick-switcher's selection, which is not the record any parent slot describes.
147
+ */
137
148
  const contextResourceIdentifiers = target.resourceId
138
149
  ? {
139
- ...ambientContextResourceIdentifiers,
150
+ ...(target.contextResourceIdentifiers
151
+ ? ambientContextResourceIdentifiers
152
+ : scopeReferencedRecord({
153
+ hostIdentifiers: ambientContextResourceIdentifiers,
154
+ hostContextualParameters: {},
155
+ hostRecord: {
156
+ resourceType: target.resourceType,
157
+ id: frontendResourceUtils.getResourceId(flattenedExplicitContextResourceIdentifiers?.[target.resourceType]),
158
+ },
159
+ targetResourceType: target.resourceType,
160
+ targetId: target.resourceId,
161
+ registry,
162
+ }).identifiers),
140
163
  [target.resourceType]: target.resourceId,
141
164
  }
142
165
  : ambientContextResourceIdentifiers;