@declarion/react 0.65.0 → 0.66.0

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 (467) hide show
  1. package/dist-lib/api/access-expiry.js +32 -0
  2. package/dist-lib/api/agents.js +105 -0
  3. package/dist-lib/api/auth-redirect.js +30 -0
  4. package/dist-lib/api/auth.js +67 -0
  5. package/dist-lib/api/batch.js +34 -0
  6. package/dist-lib/api/client.js +241 -0
  7. package/dist-lib/api/data.js +122 -0
  8. package/dist-lib/api/entities.js +160 -0
  9. package/dist-lib/api/events.js +120 -0
  10. package/dist-lib/api/fileReferences.js +8 -0
  11. package/dist-lib/api/params.js +20 -0
  12. package/dist-lib/api/properties.js +25 -0
  13. package/dist-lib/api/request-bounds.js +28 -0
  14. package/dist-lib/api/schema.js +71 -0
  15. package/dist-lib/api/session-renewal.js +36 -0
  16. package/dist-lib/api/status.js +17 -0
  17. package/dist-lib/app.js +262 -0
  18. package/dist-lib/components/actions/ActionButton.js +116 -0
  19. package/dist-lib/{ActionDialog-C6EG-AmC.js → components/actions/ActionDialog.js} +63 -53
  20. package/dist-lib/{ActionResultDialog.impl-BATutW8J.js → components/actions/ActionResultDialog.impl.js} +53 -48
  21. package/dist-lib/components/actions/ActionResultDialog.js +12 -0
  22. package/dist-lib/components/actions/ActionRunner.js +274 -0
  23. package/dist-lib/components/actions/ObjectActionBar.js +127 -0
  24. package/dist-lib/components/actions/PropertyGridEditor.js +202 -0
  25. package/dist-lib/components/actions/ResponsiveActionBar.js +773 -0
  26. package/dist-lib/components/actions/RowActionsKebab.js +90 -0
  27. package/dist-lib/{AgentChatPanel.impl-D5y_qEex.js → components/agents/AgentChatPanel.impl.js} +314 -362
  28. package/dist-lib/components/agents/AgentChatPanel.js +12 -0
  29. package/dist-lib/components/agents/AgentConversationDrawer.js +59 -0
  30. package/dist-lib/components/agents/AgentElicitForm.js +152 -0
  31. package/dist-lib/components/agents/AgentOpenFollower.impl.js +7 -0
  32. package/dist-lib/components/agents/AgentOpenFollower.js +12 -0
  33. package/dist-lib/components/agents/AgentPicker.js +58 -0
  34. package/dist-lib/components/agents/transcript-runs.js +52 -0
  35. package/dist-lib/components/chrome/AssociationTabs.js +176 -0
  36. package/dist-lib/components/chrome/AuditMetaStrip.js +64 -0
  37. package/dist-lib/components/chrome/Breadcrumbs.js +67 -0
  38. package/dist-lib/components/chrome/HighlightsStrip.js +39 -0
  39. package/dist-lib/{PageHeader-DiwLe7CO.js → components/chrome/PageHeader.js} +19 -15
  40. package/dist-lib/{PageShell-BJz1MiTH.js → components/chrome/PageShell.js} +3 -3
  41. package/dist-lib/components/chrome/RecordHeader.js +119 -0
  42. package/dist-lib/{headerActionZone-bef-tZZ7.js → components/chrome/headerActionZone.js} +1 -1
  43. package/dist-lib/components/detail-layout/AssociatedBlock.js +1244 -0
  44. package/dist-lib/components/detail-layout/AssociatedToolbar.js +87 -0
  45. package/dist-lib/components/detail-layout/ChildrenBlock.js +80 -0
  46. package/dist-lib/components/detail-layout/ChildrenCards.js +156 -0
  47. package/dist-lib/components/detail-layout/ChildrenList.js +135 -0
  48. package/dist-lib/components/detail-layout/ChildrenTable.js +189 -0
  49. package/dist-lib/components/detail-layout/ChildrenTimeline.js +609 -0
  50. package/dist-lib/components/detail-layout/DetailAuditStrip.js +40 -0
  51. package/dist-lib/components/detail-layout/DetailHighlights.js +54 -0
  52. package/dist-lib/{DraggableChildrenTable-Dd5SeuF6.js → components/detail-layout/DraggableChildrenTable.js} +56 -53
  53. package/dist-lib/components/detail-layout/EditableChildrenTable.js +341 -0
  54. package/dist-lib/components/detail-layout/ErrorSummary.js +89 -0
  55. package/dist-lib/components/detail-layout/EvidenceBlock.js +66 -0
  56. package/dist-lib/{FieldRow-DedGIY9R.js → components/detail-layout/FieldRow.js} +8 -7
  57. package/dist-lib/components/detail-layout/FieldsBlock.js +74 -0
  58. package/dist-lib/components/detail-layout/LayoutColumn.js +16 -0
  59. package/dist-lib/components/detail-layout/LayoutRenderer.js +54 -0
  60. package/dist-lib/components/detail-layout/LayoutRow.js +83 -0
  61. package/dist-lib/components/detail-layout/LayoutTabs.js +195 -0
  62. package/dist-lib/components/detail-layout/PropertiesBlock.js +74 -0
  63. package/dist-lib/components/detail-layout/QuickAddForm.js +81 -0
  64. package/dist-lib/components/detail-layout/SectionBlock.js +48 -0
  65. package/dist-lib/components/detail-layout/StatusesBlock.js +18 -0
  66. package/dist-lib/components/detail-layout/TimelineComposer.js +205 -0
  67. package/dist-lib/components/detail-layout/blockMeta.js +27 -0
  68. package/dist-lib/components/detail-layout/useManualColumnResize.js +94 -0
  69. package/dist-lib/components/detail-layout/useQuickAdd.js +85 -0
  70. package/dist-lib/components/detail-layout/widgets/EntityScorecardWidget.js +295 -0
  71. package/dist-lib/components/detail-layout/widgets/JsonDiffWidget.js +107 -0
  72. package/dist-lib/components/detail-layout/widgets/MonacoJson.js +47 -0
  73. package/dist-lib/components/detail-layout/widgets/WidgetHost.js +36 -0
  74. package/dist-lib/components/detail-layout/widgets/builtins.js +10 -0
  75. package/dist-lib/components/detail-layout/widgets/canonicalizeJson.js +32 -0
  76. package/dist-lib/components/detail-layout/widgets/monacoBootstrap.js +16 -0
  77. package/dist-lib/components/detail-layout/widgets/registry.js +13 -0
  78. package/dist-lib/components/fields/BoolField.js +13 -0
  79. package/dist-lib/components/fields/EmailField.js +16 -0
  80. package/dist-lib/components/fields/EnumField.js +38 -0
  81. package/dist-lib/components/fields/FileReferenceField.js +60 -0
  82. package/dist-lib/components/fields/IntArrayField.js +83 -0
  83. package/dist-lib/components/fields/JsonField.js +51 -0
  84. package/dist-lib/components/fields/MultilangArrayField.js +56 -0
  85. package/dist-lib/components/fields/MultilangField.js +65 -0
  86. package/dist-lib/components/fields/MultilangTextField.js +65 -0
  87. package/dist-lib/components/fields/NumberField.js +64 -0
  88. package/dist-lib/components/fields/PasswordField.js +34 -0
  89. package/dist-lib/components/fields/PhoneField.js +84 -0
  90. package/dist-lib/components/fields/RefCombobox.js +112 -0
  91. package/dist-lib/components/fields/RefField.js +45 -0
  92. package/dist-lib/components/fields/RichTextField.js +225 -0
  93. package/dist-lib/components/fields/SecretField.js +34 -0
  94. package/dist-lib/components/fields/StringArrayField.js +165 -0
  95. package/dist-lib/components/fields/StringField.js +39 -0
  96. package/dist-lib/components/fields/StructureField.js +221 -0
  97. package/dist-lib/components/fields/TextField.js +76 -0
  98. package/dist-lib/components/fields/TimestampField.js +110 -0
  99. package/dist-lib/components/fields/UrlField.js +18 -0
  100. package/dist-lib/components/fields/cells/factories/badge.js +42 -0
  101. package/dist-lib/components/fields/cells/factories/boolPill.js +17 -0
  102. package/dist-lib/components/fields/cells/factories/code.js +11 -0
  103. package/dist-lib/components/fields/cells/factories/date.js +30 -0
  104. package/dist-lib/components/fields/cells/factories/email.js +26 -0
  105. package/dist-lib/components/fields/cells/factories/emptyCell.js +10 -0
  106. package/dist-lib/components/fields/cells/factories/fileReference.js +17 -0
  107. package/dist-lib/components/fields/cells/factories/host-icons.js +146 -0
  108. package/dist-lib/components/fields/cells/factories/json.js +61 -0
  109. package/dist-lib/components/fields/cells/factories/link.js +32 -0
  110. package/dist-lib/components/fields/cells/factories/markdown.js +31 -0
  111. package/dist-lib/components/fields/cells/factories/markdownPreview.js +81 -0
  112. package/dist-lib/components/fields/cells/factories/money.js +37 -0
  113. package/dist-lib/components/fields/cells/factories/multilangInline.js +35 -0
  114. package/dist-lib/components/fields/cells/factories/nextRun.js +46 -0
  115. package/dist-lib/components/fields/cells/factories/number.js +42 -0
  116. package/dist-lib/components/fields/cells/factories/passwordMask.js +23 -0
  117. package/dist-lib/components/fields/cells/factories/phone.js +35 -0
  118. package/dist-lib/components/fields/cells/factories/refLink.js +57 -0
  119. package/dist-lib/components/fields/cells/factories/richTextPreview.js +34 -0
  120. package/dist-lib/components/fields/cells/factories/statusPill.js +35 -0
  121. package/dist-lib/components/fields/cells/factories/tagList.js +44 -0
  122. package/dist-lib/components/fields/cells/factories/text.js +5 -0
  123. package/dist-lib/components/fields/cells/factories/timestamp.js +18 -0
  124. package/dist-lib/components/fields/cells/factories/url-helpers.js +49 -0
  125. package/dist-lib/components/fields/cells/factories/url.js +45 -0
  126. package/dist-lib/components/fields/cells/registry.js +58 -0
  127. package/dist-lib/components/fields/index.js +80 -0
  128. package/dist-lib/components/fields/langMap.js +6 -0
  129. package/dist-lib/components/fields/secretValue.js +7 -0
  130. package/dist-lib/components/file-widgets/CircleImage.js +11 -0
  131. package/dist-lib/components/file-widgets/DocumentCard.js +277 -0
  132. package/dist-lib/components/file-widgets/FileList.js +213 -0
  133. package/dist-lib/{Grid-XUHm5SDe.js → components/file-widgets/Grid.js} +45 -40
  134. package/dist-lib/components/file-widgets/GridLazy.js +15 -0
  135. package/dist-lib/components/file-widgets/ImageWidget.js +354 -0
  136. package/dist-lib/components/file-widgets/LabeledSlots.js +69 -0
  137. package/dist-lib/components/file-widgets/SquareImage.js +11 -0
  138. package/dist-lib/components/file-widgets/UnknownFileWidget.js +22 -0
  139. package/dist-lib/components/file-widgets/UploadFailureText.js +10 -0
  140. package/dist-lib/components/file-widgets/WideBanner.js +11 -0
  141. package/dist-lib/components/file-widgets/builtins.js +15 -0
  142. package/dist-lib/components/file-widgets/cropper.js +13 -0
  143. package/dist-lib/components/file-widgets/draft-scope.js +59 -0
  144. package/dist-lib/components/file-widgets/helpers.js +75 -0
  145. package/dist-lib/components/file-widgets/host.js +75 -0
  146. package/dist-lib/{payload-DioMoxMX.js → components/file-widgets/payload.js} +14 -14
  147. package/dist-lib/components/file-widgets/registry.js +13 -0
  148. package/dist-lib/components/file-widgets/upload.js +180 -0
  149. package/dist-lib/components/file-widgets/useEmbedFileSrc.js +45 -0
  150. package/dist-lib/components/file-widgets/value.js +12 -0
  151. package/dist-lib/components/filters/FilterChips.js +123 -0
  152. package/dist-lib/components/filters/FilterConditionValue.js +40 -0
  153. package/dist-lib/components/filters/FilterDrawer.js +670 -0
  154. package/dist-lib/components/filters/FilterOmittedNotice.js +14 -0
  155. package/dist-lib/components/filters/filter-op-label.js +8 -0
  156. package/dist-lib/{CommandPalette.impl-DRI5kxVY.js → components/layout/CommandPalette.impl.js} +62 -61
  157. package/dist-lib/components/layout/CommandPalette.js +12 -0
  158. package/dist-lib/{DirtyTabsCloseDialog.impl-FhAiOmEb.js → components/layout/DirtyTabsCloseDialog.impl.js} +16 -14
  159. package/dist-lib/components/layout/DirtyTabsCloseDialog.js +12 -0
  160. package/dist-lib/{ImpersonationBanner.impl--g0iYwcV.js → components/layout/ImpersonationBanner.impl.js} +4 -3
  161. package/dist-lib/components/layout/ImpersonationBanner.js +12 -0
  162. package/dist-lib/components/layout/ImpersonationFrame.js +29 -0
  163. package/dist-lib/{ImpersonationStartModal.impl-BFBN0YJe.js → components/layout/ImpersonationStartModal.impl.js} +9 -9
  164. package/dist-lib/components/layout/ImpersonationStartModal.js +12 -0
  165. package/dist-lib/components/layout/Layout.js +755 -0
  166. package/dist-lib/components/layout/Rail.js +149 -0
  167. package/dist-lib/components/layout/Sidebar.js +362 -0
  168. package/dist-lib/components/layout/TabStrip.js +321 -0
  169. package/dist-lib/components/layout/TenantChip.js +355 -0
  170. package/dist-lib/components/layout/TopBar.js +305 -0
  171. package/dist-lib/components/layout/tab-close.js +24 -0
  172. package/dist-lib/components/list/ColumnPicker.js +112 -0
  173. package/dist-lib/components/list/InlineEditCell.js +107 -0
  174. package/dist-lib/components/list/PeekFieldCell.js +143 -0
  175. package/dist-lib/components/list/QuickPeek.js +263 -0
  176. package/dist-lib/components/list/ViewSwitcher.js +156 -0
  177. package/dist-lib/components/list/peekDraftStore.js +14 -0
  178. package/dist-lib/{AdminCatalogPage.impl-B-7MLqa1.js → components/pages/AdminCatalogPage.impl.js} +53 -49
  179. package/dist-lib/components/pages/AdminCatalogPage.js +12 -0
  180. package/dist-lib/components/pages/DocumentsMenu.js +150 -0
  181. package/dist-lib/components/pages/ExportMenu.js +123 -0
  182. package/dist-lib/{NotFoundPage.impl-BoX11u-P.js → components/pages/NotFoundPage.impl.js} +6 -4
  183. package/dist-lib/components/pages/NotFoundPage.js +12 -0
  184. package/dist-lib/components/pages/RecordDocumentsPanel.js +230 -0
  185. package/dist-lib/components/pages/RecordNotesPanel.js +200 -0
  186. package/dist-lib/components/pages/RecordPanels.js +18 -0
  187. package/dist-lib/components/pages/SSOCallbackPage.impl.js +28 -0
  188. package/dist-lib/components/pages/SSOCallbackPage.js +12 -0
  189. package/dist-lib/components/pages/SmartDetailPage.impl.js +986 -0
  190. package/dist-lib/components/pages/SmartDetailPage.js +12 -0
  191. package/dist-lib/components/pages/SmartListPage.impl.js +708 -0
  192. package/dist-lib/components/pages/SmartListPage.js +12 -0
  193. package/dist-lib/components/pages/SmartRecordListPage.impl.js +818 -0
  194. package/dist-lib/components/pages/SmartRecordListPage.js +12 -0
  195. package/dist-lib/components/pages/auth/AuthShell.js +350 -0
  196. package/dist-lib/{Forgot.impl-6tL6SBlS.js → components/pages/auth/Forgot.impl.js} +13 -12
  197. package/dist-lib/components/pages/auth/Forgot.js +12 -0
  198. package/dist-lib/{Reset.impl-D0pjhS6d.js → components/pages/auth/Reset.impl.js} +17 -15
  199. package/dist-lib/components/pages/auth/Reset.js +12 -0
  200. package/dist-lib/components/pages/auth/SignIn.js +252 -0
  201. package/dist-lib/{SignUp.impl-CfEXrUeg.js → components/pages/auth/SignUp.impl.js} +31 -27
  202. package/dist-lib/components/pages/auth/SignUp.js +12 -0
  203. package/dist-lib/{TwoFA.impl-B2HtPduH.js → components/pages/auth/TwoFA.impl.js} +9 -8
  204. package/dist-lib/components/pages/auth/TwoFA.js +12 -0
  205. package/dist-lib/components/pages/auth/icons.js +56 -0
  206. package/dist-lib/components/pages/exportRequest.js +17 -0
  207. package/dist-lib/components/pages/list/DataCell.js +27 -0
  208. package/dist-lib/components/pages/list/DeleteViewDialog.js +22 -0
  209. package/dist-lib/{ListCardsBody-BEoYjSZ2.js → components/pages/list/ListCardRow.js} +47 -72
  210. package/dist-lib/components/pages/list/ListCardsBody.js +31 -0
  211. package/dist-lib/components/pages/list/ListFloatbar.js +130 -0
  212. package/dist-lib/components/pages/list/ListFooter.js +138 -0
  213. package/dist-lib/components/pages/list/ListHeader.js +120 -0
  214. package/dist-lib/components/pages/list/ListNoRows.js +72 -0
  215. package/dist-lib/components/pages/list/ListTable.js +191 -0
  216. package/dist-lib/components/pages/list/ListTableRow.js +37 -0
  217. package/dist-lib/components/pages/list/ListToolbar.js +261 -0
  218. package/dist-lib/components/pages/list/ListUrlBanner.js +45 -0
  219. package/dist-lib/components/pages/list/RowActionsCell.js +49 -0
  220. package/dist-lib/components/pages/list/RowContextMenu.js +55 -0
  221. package/dist-lib/components/pages/list/SaveViewDialog.js +111 -0
  222. package/dist-lib/{SortHeaderMenu-Co5PvhTA.js → components/pages/list/SortHeaderMenu.js} +18 -17
  223. package/dist-lib/{cardProjection-Cxlogzh8.js → components/pages/list/cardProjection.js} +3 -3
  224. package/dist-lib/components/pages/list/column-sizing.js +17 -0
  225. package/dist-lib/components/pages/list/columns.js +168 -0
  226. package/dist-lib/components/pages/list/filter-meta.js +84 -0
  227. package/dist-lib/components/pages/list/page-size.js +11 -0
  228. package/dist-lib/components/pages/list/sortable-header.js +18 -0
  229. package/dist-lib/components/pages/list/table-features.js +11 -0
  230. package/dist-lib/components/pages/list/use-filter-value-labels.js +115 -0
  231. package/dist-lib/components/pages/list/useActiveView.js +98 -0
  232. package/dist-lib/components/pages/list/useHeaderReorder.js +93 -0
  233. package/dist-lib/components/pages/list/useListColumnLayout.js +56 -0
  234. package/dist-lib/components/pages/list/useListFilterPresentation.js +34 -0
  235. package/dist-lib/components/pages/list/useListQuery.js +101 -0
  236. package/dist-lib/components/pages/list/useListRowInteraction.js +120 -0
  237. package/dist-lib/components/pages/list/useListSelection.js +53 -0
  238. package/dist-lib/components/pages/list/useListSort.js +44 -0
  239. package/dist-lib/components/pages/list/useListViews.js +148 -0
  240. package/dist-lib/components/pages/list/useRowMenu.js +106 -0
  241. package/dist-lib/components/pages/list/visible-filters.js +19 -0
  242. package/dist-lib/{Preferences.impl-Ct5xwZtT.js → components/pages/profile/Preferences.impl.js} +34 -31
  243. package/dist-lib/components/pages/profile/Preferences.js +12 -0
  244. package/dist-lib/components/pages/profile/Profile.impl.js +437 -0
  245. package/dist-lib/components/pages/profile/Profile.js +12 -0
  246. package/dist-lib/{TenantParamsPage.impl-BGpdmEZg.js → components/pages/tenant-params/TenantParamsPage.impl.js} +45 -40
  247. package/dist-lib/components/pages/tenant-params/TenantParamsPage.js +12 -0
  248. package/dist-lib/components/params/ParamsBlock.js +119 -0
  249. package/dist-lib/{param-editors-TYYU7HKK.js → components/params/param-editors.js} +32 -28
  250. package/dist-lib/components/primitives/Avatar.js +33 -0
  251. package/dist-lib/components/primitives/BoolToggle.js +35 -0
  252. package/dist-lib/components/primitives/BrandGlyph.js +38 -0
  253. package/dist-lib/components/primitives/BrandLogo.js +20 -0
  254. package/dist-lib/components/primitives/Btn.js +67 -0
  255. package/dist-lib/{Check-DAfMbQIw.js → components/primitives/Check.js} +2 -2
  256. package/dist-lib/components/primitives/Chip.js +44 -0
  257. package/dist-lib/components/primitives/ClassifiedFieldLocked.js +15 -0
  258. package/dist-lib/components/primitives/Dropdown.js +85 -0
  259. package/dist-lib/components/primitives/Fields.js +751 -0
  260. package/dist-lib/components/primitives/HoverCard.js +115 -0
  261. package/dist-lib/components/primitives/IconBtn.js +37 -0
  262. package/dist-lib/{Icons-lt-7lhYR.js → components/primitives/Icons.js} +1 -1
  263. package/dist-lib/{Kbd-CNttVu0z.js → components/primitives/Kbd.js} +2 -2
  264. package/dist-lib/components/primitives/MenuItem.js +57 -0
  265. package/dist-lib/{Pill-D-wsfRhx.js → components/primitives/Pill.js} +1 -1
  266. package/dist-lib/{RecordIdBadge-wbigZaFc.js → components/primitives/RecordIdBadge.js} +5 -5
  267. package/dist-lib/components/primitives/RowField.js +47 -0
  268. package/dist-lib/{SectionCard-BYHoHWJc.js → components/primitives/SectionCard.js} +10 -10
  269. package/dist-lib/components/primitives/Spinner.js +31 -0
  270. package/dist-lib/components/primitives/StatTile.js +108 -0
  271. package/dist-lib/components/primitives/Tooltip.js +115 -0
  272. package/dist-lib/{dataTableStyles-vwD1mVOP.js → components/primitives/dataTableStyles.js} +1 -1
  273. package/dist-lib/components/shared/BlankScreen.js +13 -0
  274. package/dist-lib/{ChangePasswordDialog.impl-5hDc0wpE.js → components/shared/ChangePasswordDialog.impl.js} +27 -22
  275. package/dist-lib/{ChangePasswordDialog-C_T_3pjl.js → components/shared/ChangePasswordDialog.js} +2 -2
  276. package/dist-lib/components/shared/ConfirmDialog.js +129 -0
  277. package/dist-lib/components/shared/ConnectionNotice.js +12 -0
  278. package/dist-lib/components/shared/CopyButton.js +25 -0
  279. package/dist-lib/components/shared/DynamicIcon.js +73 -0
  280. package/dist-lib/components/shared/EmptyState.js +56 -0
  281. package/dist-lib/components/shared/ErrorBoundary.js +96 -0
  282. package/dist-lib/components/shared/LoadingSkeleton.js +117 -0
  283. package/dist-lib/components/shared/LucideIcon.js +43 -0
  284. package/dist-lib/components/shared/Markdown.js +15 -0
  285. package/dist-lib/{MarkdownRenderer-sK2TRZS-.js → components/shared/MarkdownRenderer.js} +10 -9
  286. package/dist-lib/components/shared/RefreshControl.js +42 -0
  287. package/dist-lib/components/shared/StatusGroupsDisplay.js +123 -0
  288. package/dist-lib/components/shared/StatusStepper.js +70 -0
  289. package/dist-lib/components/shared/toast/DeclarionToast.js +308 -0
  290. package/dist-lib/components/shared/useOwnRefresh.js +19 -0
  291. package/dist-lib/declarion-react.css +1 -1
  292. package/dist-lib/embed/EmbedAuthBootstrap.js +71 -0
  293. package/dist-lib/embed/EmbedContext.js +38 -0
  294. package/dist-lib/embed/EmbedDirtyReporter.js +17 -0
  295. package/dist-lib/embed/EmbedHistoryTracker.js +17 -0
  296. package/dist-lib/embed/EmbedLocationReporter.js +26 -0
  297. package/dist-lib/embed/EmbedResizeReporter.js +25 -0
  298. package/dist-lib/embed/EmbedUnsavedGuard.js +23 -0
  299. package/dist-lib/embed/embed-dirty.js +21 -0
  300. package/dist-lib/embed/embed-history.js +17 -0
  301. package/dist-lib/embed/embed-nav-guard.js +13 -0
  302. package/dist-lib/embed/file-src.js +60 -0
  303. package/dist-lib/embed/handshake.js +37 -0
  304. package/dist-lib/embed/params.js +45 -0
  305. package/dist-lib/embed/protocol.js +26 -0
  306. package/dist-lib/embed/screen-location.js +44 -0
  307. package/dist-lib/embed/theme.js +11 -0
  308. package/dist-lib/embed/token.js +54 -0
  309. package/dist-lib/embed/useEmbedNavigate.js +65 -0
  310. package/dist-lib/embed/useGlobalLinkInterceptor.js +63 -0
  311. package/dist-lib/hooks/useActionData.js +58 -0
  312. package/dist-lib/hooks/useAgentConversation.js +311 -0
  313. package/dist-lib/hooks/useAggregate.js +18 -0
  314. package/dist-lib/hooks/useAllEntityData.js +53 -0
  315. package/dist-lib/hooks/useAssociatedData.js +37 -0
  316. package/dist-lib/hooks/useAuth.js +56 -0
  317. package/dist-lib/hooks/useBranding.js +18 -0
  318. package/dist-lib/hooks/useBrandingChrome.js +58 -0
  319. package/dist-lib/hooks/useChildrenData.js +33 -0
  320. package/dist-lib/hooks/useColumns.js +44 -0
  321. package/dist-lib/hooks/useConnectionNotice.js +35 -0
  322. package/dist-lib/{useCurrentLocation-Bq1T72AW.js → hooks/useCurrentLocation.js} +2 -2
  323. package/dist-lib/hooks/useCurrentScreen.js +20 -0
  324. package/dist-lib/hooks/useCursorEntityData.js +77 -0
  325. package/dist-lib/hooks/useDebounce.js +11 -0
  326. package/dist-lib/hooks/useEntity.js +8 -0
  327. package/dist-lib/hooks/useEntityData.js +64 -0
  328. package/dist-lib/hooks/useFileReferenceJSON.js +29 -0
  329. package/dist-lib/hooks/useFilters.js +28 -0
  330. package/dist-lib/hooks/useFollowAgentOpen.js +84 -0
  331. package/dist-lib/hooks/useImpersonation.js +40 -0
  332. package/dist-lib/hooks/useIntentPrefetch.js +43 -0
  333. package/dist-lib/hooks/useJsonSnapshot.js +8 -0
  334. package/dist-lib/hooks/useLanguage.js +21 -0
  335. package/dist-lib/hooks/useLiveObject.js +17 -0
  336. package/dist-lib/hooks/useLongPress.js +49 -0
  337. package/dist-lib/hooks/useMutations.js +70 -0
  338. package/dist-lib/{useObject-B45F96rC.js → hooks/useObject.js} +2 -2
  339. package/dist-lib/hooks/useObjectStatus.js +20 -0
  340. package/dist-lib/hooks/usePageState.js +18 -0
  341. package/dist-lib/hooks/usePageStateRuntime.js +46 -0
  342. package/dist-lib/hooks/usePageStateTtl.js +10 -0
  343. package/dist-lib/hooks/useParams.js +123 -0
  344. package/dist-lib/hooks/useProperties.js +32 -0
  345. package/dist-lib/hooks/useRealtimeThresholds.js +31 -0
  346. package/dist-lib/hooks/useRegisterScreenTab.js +28 -0
  347. package/dist-lib/hooks/useResponsiveMode.js +84 -0
  348. package/dist-lib/hooks/useSSE.js +307 -0
  349. package/dist-lib/hooks/useSchema.js +73 -0
  350. package/dist-lib/hooks/useScreen.js +8 -0
  351. package/dist-lib/hooks/useScreenBack.js +60 -0
  352. package/dist-lib/hooks/useScreenTab.js +11 -0
  353. package/dist-lib/hooks/useTabNavigate.js +82 -0
  354. package/dist-lib/hooks/useTabSearchMirror.js +19 -0
  355. package/dist-lib/{useTabTitle-KrzEo118.js → hooks/useTabTitle.js} +9 -7
  356. package/dist-lib/hooks/useText.js +15 -0
  357. package/dist-lib/hooks/useTimelineData.js +44 -0
  358. package/dist-lib/hooks/useUnsavedInput.js +18 -0
  359. package/dist-lib/hooks/useVersionWatcher.js +62 -0
  360. package/dist-lib/hooks/useViews.js +88 -0
  361. package/dist-lib/hooks/useWindowConversation.js +11 -0
  362. package/dist-lib/icons.js +5 -3
  363. package/dist-lib/index.d.ts +42 -20
  364. package/dist-lib/index.js +131 -3926
  365. package/dist-lib/lib/action-dispatch.js +7 -0
  366. package/dist-lib/lib/actions.js +279 -0
  367. package/dist-lib/lib/anchor.js +41 -0
  368. package/dist-lib/lib/brand-tokens.js +95 -0
  369. package/dist-lib/lib/branding.js +25 -0
  370. package/dist-lib/lib/canonical-url.js +17 -0
  371. package/dist-lib/lib/capabilityPrefetch.js +57 -0
  372. package/dist-lib/lib/child-config.js +111 -0
  373. package/dist-lib/lib/children-validation.js +52 -0
  374. package/dist-lib/lib/decimal-text.js +15 -0
  375. package/dist-lib/lib/display-value.js +19 -0
  376. package/dist-lib/lib/document-templates.js +6 -0
  377. package/dist-lib/lib/download.js +41 -0
  378. package/dist-lib/lib/evidence-verdict.js +23 -0
  379. package/dist-lib/lib/failure.js +9 -0
  380. package/dist-lib/lib/field-classification.js +58 -0
  381. package/dist-lib/lib/field-regions.js +13 -0
  382. package/dist-lib/lib/filter-evaluator.js +98 -0
  383. package/dist-lib/lib/filters.js +118 -0
  384. package/dist-lib/lib/format-count.js +24 -0
  385. package/dist-lib/lib/html-state.js +9 -0
  386. package/dist-lib/lib/language.js +52 -0
  387. package/dist-lib/lib/longPressGesture.js +34 -0
  388. package/dist-lib/lib/mass-edit.js +65 -0
  389. package/dist-lib/{page-inset-D_kkVwwN.js → lib/page-inset.js} +1 -1
  390. package/dist-lib/lib/phone.js +28 -0
  391. package/dist-lib/lib/query-retry.js +7 -0
  392. package/dist-lib/lib/quick-add.js +23 -0
  393. package/dist-lib/lib/realtime-query-keys.js +23 -0
  394. package/dist-lib/lib/realtime-reconcile.js +148 -0
  395. package/dist-lib/lib/realtime-resync.js +192 -0
  396. package/dist-lib/lib/record-documents-key.js +4 -0
  397. package/dist-lib/lib/ref-choices.js +6 -0
  398. package/dist-lib/lib/refetch-when-idle.js +25 -0
  399. package/dist-lib/lib/rich-text.js +46 -0
  400. package/dist-lib/lib/rowClickGesture.js +10 -0
  401. package/dist-lib/lib/safe-url.js +34 -0
  402. package/dist-lib/lib/schema-routing.js +51 -0
  403. package/dist-lib/{screen-back-BtbEp5sO.js → lib/screen-back.js} +2 -2
  404. package/dist-lib/lib/scroll-restoration.js +156 -0
  405. package/dist-lib/lib/size-value.js +22 -0
  406. package/dist-lib/lib/sort.js +59 -0
  407. package/dist-lib/lib/timestamp.js +97 -0
  408. package/dist-lib/lib/toast.js +78 -0
  409. package/dist-lib/lib/ui-actions.js +81 -0
  410. package/dist-lib/{utils-D_QDpB8_.js → lib/utils.js} +1 -1
  411. package/dist-lib/lib/variants.js +63 -0
  412. package/dist-lib/lib/versionTracker.js +102 -0
  413. package/dist-lib/lib/viewport-category.js +12 -0
  414. package/dist-lib/{window-election-CHIvIZwx.js → lib/window-election.js} +1 -1
  415. package/dist-lib/stores/auth.js +84 -0
  416. package/dist-lib/stores/icon-registry.js +24 -0
  417. package/dist-lib/stores/list-layout.js +178 -0
  418. package/dist-lib/{page-state-eA6J_KIR.js → stores/page-state.js} +1 -1
  419. package/dist-lib/stores/preferences.js +126 -0
  420. package/dist-lib/stores/realtime.js +115 -0
  421. package/dist-lib/stores/screen-registry.js +10 -0
  422. package/dist-lib/stores/tabs.js +220 -0
  423. package/dist-lib/test/seed-schema.js +8 -0
  424. package/dist-lib/testing.d.ts +1 -1
  425. package/dist-lib/testing.js +80 -76
  426. package/dist-lib/types/api.js +48 -0
  427. package/dist-lib/types/fieldType.js +4 -0
  428. package/dist-lib/types/ordmap.js +50 -0
  429. package/dist-lib/types/schema.js +173 -0
  430. package/dist-lib/{useResponsiveMode-DIR1bZfo.d.ts → useResponsiveMode-DmrpMbZX.d.ts} +44 -16
  431. package/package.json +13 -12
  432. package/dist-lib/ActionRunner-DdBFhqGe.js +0 -1440
  433. package/dist-lib/AgentOpenFollower.impl-BAs_wGEZ.js +0 -81
  434. package/dist-lib/AssociatedBlock-BOoPLOjw.js +0 -1515
  435. package/dist-lib/AuthShell-C8aVwHS7.js +0 -361
  436. package/dist-lib/BlankScreen-DVc7fh8C.js +0 -61
  437. package/dist-lib/CopyButton-DRIT_f0k.js +0 -119
  438. package/dist-lib/DynamicIcon-DuBSz6TZ.js +0 -133
  439. package/dist-lib/FilterChips-Cv1tlXyo.js +0 -1031
  440. package/dist-lib/LayoutRenderer-d-tXYPze.js +0 -3239
  441. package/dist-lib/MenuItem-CfkVXPvC.js +0 -140
  442. package/dist-lib/MonacoJson-BG3S3GHX.js +0 -60
  443. package/dist-lib/Profile.impl-Cypk27ah.js +0 -527
  444. package/dist-lib/PropertyGridEditor-XrP6TZ5s.js +0 -4378
  445. package/dist-lib/RecordHeader-BfQ0_4wq.js +0 -217
  446. package/dist-lib/RefreshControl-CRdWPoF5.js +0 -195
  447. package/dist-lib/SSOCallbackPage.impl-Cfi2pQ59.js +0 -31
  448. package/dist-lib/SmartDetailPage.impl-BiIX0n7K.js +0 -1609
  449. package/dist-lib/SmartListPage.impl-Cu83Gv_G.js +0 -2818
  450. package/dist-lib/SmartRecordListPage.impl-DR6lq7HA.js +0 -795
  451. package/dist-lib/format-count-lyB4CPen.js +0 -943
  452. package/dist-lib/peekDraftStore-CaimrOhW.js +0 -200
  453. package/dist-lib/registry-CGe5kCXN.js +0 -119
  454. package/dist-lib/use-filter-value-labels-D3YDgUzg.js +0 -413
  455. package/dist-lib/useAgentConversation-rru-7hnF.js +0 -612
  456. package/dist-lib/useBranding-zcxEic2k.js +0 -41
  457. package/dist-lib/useBrandingChrome-bxaR3G1R.js +0 -170
  458. package/dist-lib/useCurrentScreen-BZOHBGQZ.js +0 -2522
  459. package/dist-lib/useImpersonation-DBIRRR70.js +0 -35
  460. package/dist-lib/useOwnRefresh-DJjaje52.js +0 -435
  461. package/dist-lib/useParams-BFLJi4n3.js +0 -133
  462. package/dist-lib/useProperties-B7opZ-iy.js +0 -81
  463. package/dist-lib/useScreenBack-DENlz844.js +0 -71
  464. package/dist-lib/useTabNavigate-CUqOmcMj.js +0 -78
  465. package/dist-lib/value-BuQVYx52.js +0 -194
  466. package/dist-lib/variants-vUtfBbE6.js +0 -1961
  467. /package/dist-lib/{JsonEditor-Dz1PQHC8.js → components/fields/JsonEditor.js} +0 -0
@@ -0,0 +1,437 @@
1
+ import { changePassword as e } from "../../../api/auth.js";
2
+ import { useAuthStore as t } from "../../../stores/auth.js";
3
+ import { useSchema as n } from "../../../hooks/useSchema.js";
4
+ import { LANGUAGE_PARAMETER as r, pluralText as i } from "../../../lib/language.js";
5
+ import { Icon as a } from "../../primitives/Icons.js";
6
+ import { Btn as o } from "../../primitives/Btn.js";
7
+ import { IconBtn as s } from "../../primitives/IconBtn.js";
8
+ import { Pill as c } from "../../primitives/Pill.js";
9
+ import { Chip as l } from "../../primitives/Chip.js";
10
+ import { useText as u } from "../../../hooks/useText.js";
11
+ import { SectionCard as d } from "../../primitives/SectionCard.js";
12
+ import { useResponsiveMode as f } from "../../../hooks/useResponsiveMode.js";
13
+ import { Spinner as p } from "../../primitives/Spinner.js";
14
+ import { FieldLabel as m, Select as h, TextInput as g } from "../../primitives/Fields.js";
15
+ import { DynamicIcon as _ } from "../../shared/DynamicIcon.js";
16
+ import { updateEntity as v } from "../../../api/data.js";
17
+ import { failureTitle as y } from "../../../lib/failure.js";
18
+ import { useAllParams as b, useCarrierParamOverrides as x } from "../../../hooks/useParams.js";
19
+ import { useTabNavigate as S } from "../../../hooks/useTabNavigate.js";
20
+ import { toast as C } from "../../../lib/toast.js";
21
+ import { useBrandingChrome as w } from "../../../hooks/useBrandingChrome.js";
22
+ import { useCurrentScreen as T } from "../../../hooks/useCurrentScreen.js";
23
+ import { useObject as E } from "../../../hooks/useObject.js";
24
+ import { FileDraftScope as D, useFileDraftScope as O } from "../../file-widgets/draft-scope.js";
25
+ import { singleFileFromValue as k } from "../../file-widgets/value.js";
26
+ import { getFileFieldValue as A, renderSchemaField as j } from "../../file-widgets/host.js";
27
+ import { buildFilesPayload as M } from "../../file-widgets/payload.js";
28
+ import { EMPTY_CELL as ee } from "../../fields/cells/factories/emptyCell.js";
29
+ import { ChangePasswordDialog as N } from "../../shared/ChangePasswordDialog.js";
30
+ import { AssociatedBlock as P } from "../../detail-layout/AssociatedBlock.js";
31
+ import { FieldRow as F, FieldsGrid as I } from "../../detail-layout/FieldRow.js";
32
+ import { DetailAuditStrip as te } from "../../detail-layout/DetailAuditStrip.js";
33
+ import { RecordHeader as L } from "../../chrome/RecordHeader.js";
34
+ import { PageShell as R } from "../../chrome/PageShell.js";
35
+ import { ErrorLine as z } from "../../params/param-editors.js";
36
+ import { ParamsBlock as B } from "../../params/ParamsBlock.js";
37
+ import { Fragment as V, useId as H, useState as U } from "react";
38
+ import { Fragment as W, jsx as G, jsxs as K } from "react/jsx-runtime";
39
+ //#region src/components/pages/profile/Profile.impl.tsx
40
+ var q = "profile", J = "avatar";
41
+ function Y() {
42
+ let r = S(), s = t((e) => e.user), f = t((e) => e.activeTenant), p = t((e) => e.refreshMe), { data: m } = n(), h = T(), g = w("custom"), v = u(), y = E(q, s?.id), b = y.data?.data, [x, O] = U(!1), [k, A] = U(!1), M = m?.entities[q], P = s?.display_name || s?.email || v("profile.user_fallback", "User"), z = s?.roles && s.roles[0] || v("profile.role_fallback", "Member"), B = f?.env ? `${f.name} · ${f.env}` : f?.name ?? "—", V = (e) => M && j({
43
+ entity: M,
44
+ entityCode: q,
45
+ fieldName: e,
46
+ record: {
47
+ email: s?.email,
48
+ display_name: s?.display_name
49
+ },
50
+ mode: "display",
51
+ t: v
52
+ });
53
+ return /* @__PURE__ */ K(W, { children: [
54
+ /* @__PURE__ */ K(R, {
55
+ header: /* @__PURE__ */ G("div", {
56
+ "data-testid": "profile-hero",
57
+ children: /* @__PURE__ */ G(L, {
58
+ icon: M?.display.icon ? /* @__PURE__ */ G(_, {
59
+ name: M.display.icon,
60
+ size: 16
61
+ }) : void 0,
62
+ title: P,
63
+ recordId: s?.id,
64
+ mode: "display",
65
+ showTitle: g.isVisible("show_title"),
66
+ highlights: /* @__PURE__ */ K("div", {
67
+ className: "flex flex-wrap gap-1",
68
+ children: [
69
+ /* @__PURE__ */ G(c, {
70
+ tone: "violet",
71
+ size: "xs",
72
+ dot: !0,
73
+ children: z
74
+ }),
75
+ /* @__PURE__ */ G(c, {
76
+ tone: "slate",
77
+ size: "xs",
78
+ children: B
79
+ }),
80
+ s?.is_active && /* @__PURE__ */ G(c, {
81
+ tone: "emerald",
82
+ size: "xs",
83
+ dot: !0,
84
+ children: v("profile.status.active", "Active")
85
+ })
86
+ ]
87
+ }),
88
+ right: g.isVisible("show_actions") && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G(o, {
89
+ icon: /* @__PURE__ */ G(a.edit, { size: 13 }),
90
+ onClick: () => A(!0),
91
+ children: v("profile.edit", "Edit profile")
92
+ }), /* @__PURE__ */ G(o, {
93
+ icon: /* @__PURE__ */ G(a.settings, { size: 13 }),
94
+ onClick: () => r("/preferences", { topLevel: !0 }),
95
+ children: v("profile.preferences", "Preferences")
96
+ })] })
97
+ })
98
+ }),
99
+ children: [
100
+ /* @__PURE__ */ G(d, {
101
+ title: v("profile.personal.title", "Personal info"),
102
+ icon: /* @__PURE__ */ G(a.users, { size: 14 }),
103
+ children: /* @__PURE__ */ G("div", {
104
+ "data-testid": "profile-personal-info-grid",
105
+ children: /* @__PURE__ */ K(I, { children: [
106
+ s && M && b && /* @__PURE__ */ G(F, {
107
+ label: v("profile.avatar", "Avatar"),
108
+ children: /* @__PURE__ */ G(D, { children: /* @__PURE__ */ G(Z, {
109
+ userId: s.id,
110
+ entity: M,
111
+ record: b,
112
+ onCommitted: async () => {
113
+ await y.refetch();
114
+ }
115
+ }, X(b)) })
116
+ }),
117
+ /* @__PURE__ */ G(F, {
118
+ label: v("profile.display_name", "Display name"),
119
+ children: V("display_name")
120
+ }),
121
+ /* @__PURE__ */ G(F, {
122
+ label: v("profile.personal.email", "Email"),
123
+ "data-testid": "profile-email",
124
+ children: V("email")
125
+ }),
126
+ /* @__PURE__ */ G(F, {
127
+ label: v("profile.personal.timezone", "Timezone"),
128
+ children: re()
129
+ }),
130
+ s?.id && /* @__PURE__ */ G($, { userId: s.id })
131
+ ] })
132
+ })
133
+ }),
134
+ /* @__PURE__ */ G(d, {
135
+ title: v("profile.security.title", "Security"),
136
+ icon: /* @__PURE__ */ G(a.shield, { size: 14 }),
137
+ children: /* @__PURE__ */ G(I, { children: /* @__PURE__ */ G(F, {
138
+ label: v("profile.security.password", "Password"),
139
+ hint: v("profile.security.password_hint", "Update at any time"),
140
+ children: /* @__PURE__ */ G(o, {
141
+ size: "xs",
142
+ onClick: () => O(!0),
143
+ children: v("profile.security.password_change", "Change")
144
+ })
145
+ }) })
146
+ }),
147
+ /* @__PURE__ */ G(d, {
148
+ title: v("profile.access.title", "Access"),
149
+ icon: /* @__PURE__ */ G(a.key, { size: 14 }),
150
+ children: /* @__PURE__ */ K(I, { children: [
151
+ /* @__PURE__ */ G(F, {
152
+ label: v("profile.access.role", "Role"),
153
+ children: /* @__PURE__ */ G(c, {
154
+ tone: "violet",
155
+ size: "xs",
156
+ dot: !0,
157
+ children: z
158
+ })
159
+ }),
160
+ /* @__PURE__ */ G(F, {
161
+ label: v("profile.access.groups", "Groups"),
162
+ children: s?.roles && s.roles.length > 0 ? /* @__PURE__ */ G("div", {
163
+ className: "flex flex-wrap gap-1",
164
+ children: s.roles.map((e) => /* @__PURE__ */ G(l, { children: e }, e))
165
+ }) : ee
166
+ }),
167
+ /* @__PURE__ */ G(F, {
168
+ label: v("profile.access.permissions", "Permissions"),
169
+ children: i(v, "profile.access.permissions_explicit", s?.permissions?.length ?? 0, {
170
+ one: "{count} explicit",
171
+ other: "{count} explicit"
172
+ })
173
+ })
174
+ ] })
175
+ }),
176
+ /* @__PURE__ */ G(ie, { userId: s?.id }),
177
+ s?.id && /* @__PURE__ */ G(Q, { userId: s.id }),
178
+ h?.screen && m && M && b && /* @__PURE__ */ G(te, {
179
+ screen: h.screen,
180
+ entity: M,
181
+ entityCode: q,
182
+ record: b,
183
+ schema: m
184
+ })
185
+ ]
186
+ }),
187
+ /* @__PURE__ */ G(ne, {
188
+ open: k,
189
+ initialName: s?.display_name ?? "",
190
+ userId: s?.id ?? "",
191
+ onClose: () => A(!1),
192
+ onSaved: async () => {
193
+ await p(), A(!1);
194
+ }
195
+ }),
196
+ /* @__PURE__ */ G(N, {
197
+ open: x,
198
+ onClose: () => O(!1),
199
+ onSubmit: async ({ current: t, next: n }) => {
200
+ await e(t, n), C.success(v("profile.password.changed", "Password changed. Sign in again to continue."));
201
+ }
202
+ })
203
+ ] });
204
+ }
205
+ function X(e) {
206
+ return k(A(e, J))?.id ?? "";
207
+ }
208
+ function Z({ userId: e, entity: t, record: n, onCommitted: r }) {
209
+ let i = u(), a = u("errors"), o = O(), [s, c] = U(!1), [l, d] = U(0), f = async (s) => {
210
+ let l = M({
211
+ entity: t,
212
+ formData: { [J]: s },
213
+ record: n,
214
+ isNew: !1
215
+ });
216
+ if (Object.keys(l).length !== 0) {
217
+ c(!0);
218
+ try {
219
+ await v(q, { id: e }, { $files: l });
220
+ let t = X({ [J]: s });
221
+ t && o.markCommitted(t), await r(), C.success(i("profile.avatar.updated", "Avatar updated."));
222
+ } catch (e) {
223
+ await o.flushAllDrafts(), d((e) => e + 1), C.error(y(a, e));
224
+ } finally {
225
+ c(!1);
226
+ }
227
+ }
228
+ };
229
+ return /* @__PURE__ */ G(V, { children: j({
230
+ entity: t,
231
+ entityCode: q,
232
+ fieldName: J,
233
+ record: n,
234
+ mode: "edit",
235
+ onChange: (e) => void f(e),
236
+ disabled: s,
237
+ t: i,
238
+ fieldId: "profile-avatar"
239
+ }) }, l);
240
+ }
241
+ function ne({ open: e, initialName: t, userId: n, onClose: r, onSaved: i }) {
242
+ let c = f().isPhone, l = u(), d = u("errors"), h = H(), [_, b] = U(t), [x, S] = U(!1), [C, w] = U(null);
243
+ if (!e) return null;
244
+ let T = () => {
245
+ b(t), w(null), r();
246
+ };
247
+ return /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("div", {
248
+ onClick: T,
249
+ style: {
250
+ position: "fixed",
251
+ inset: 0,
252
+ background: "var(--scrim)",
253
+ zIndex: 60,
254
+ backdropFilter: "blur(2px)"
255
+ }
256
+ }), /* @__PURE__ */ K("div", {
257
+ "data-testid": "edit-profile-dialog",
258
+ style: {
259
+ position: "fixed",
260
+ top: "50%",
261
+ left: "50%",
262
+ transform: "translate(-50%, -50%)",
263
+ zIndex: 61,
264
+ width: c ? "calc(100vw - 24px)" : 420,
265
+ maxWidth: "calc(100vw - 24px)",
266
+ background: "var(--surface)",
267
+ borderRadius: "var(--radius-lg)",
268
+ boxShadow: "var(--shadow-lg)",
269
+ border: "1px solid var(--border)",
270
+ overflow: "hidden"
271
+ },
272
+ children: [
273
+ /* @__PURE__ */ K("div", {
274
+ style: {
275
+ padding: "14px 18px 0",
276
+ display: "flex",
277
+ alignItems: "center",
278
+ gap: 10
279
+ },
280
+ children: [
281
+ /* @__PURE__ */ G("span", {
282
+ style: {
283
+ width: 28,
284
+ height: 28,
285
+ borderRadius: "var(--radius-md)",
286
+ background: "var(--accent-soft)",
287
+ color: "var(--accent)",
288
+ display: "inline-flex",
289
+ alignItems: "center",
290
+ justifyContent: "center"
291
+ },
292
+ children: /* @__PURE__ */ G(a.edit, { size: 15 })
293
+ }),
294
+ /* @__PURE__ */ K("div", {
295
+ style: { flex: 1 },
296
+ children: [/* @__PURE__ */ G("div", {
297
+ style: {
298
+ fontSize: 14,
299
+ fontWeight: 600,
300
+ color: "var(--text)"
301
+ },
302
+ children: l("profile.edit", "Edit profile")
303
+ }), /* @__PURE__ */ G("div", {
304
+ style: {
305
+ fontSize: 11.5,
306
+ color: "var(--text-3)"
307
+ },
308
+ children: l("profile.edit.subtitle", "Update your display name.")
309
+ })]
310
+ }),
311
+ /* @__PURE__ */ G(s, {
312
+ icon: /* @__PURE__ */ G(a.x, { size: 14 }),
313
+ title: l("profile.edit.close", "Close"),
314
+ onClick: T
315
+ })
316
+ ]
317
+ }),
318
+ /* @__PURE__ */ K("div", {
319
+ style: {
320
+ padding: "12px 18px 16px",
321
+ display: "flex",
322
+ flexDirection: "column",
323
+ gap: 12
324
+ },
325
+ children: [/* @__PURE__ */ K("div", { children: [/* @__PURE__ */ G(m, {
326
+ required: !0,
327
+ htmlFor: h,
328
+ children: l("profile.display_name", "Display name")
329
+ }), /* @__PURE__ */ G(g, {
330
+ id: h,
331
+ value: _,
332
+ onChange: b,
333
+ placeholder: l("profile.edit.name_placeholder", "Your name"),
334
+ autoFocus: !0
335
+ })] }), C && /* @__PURE__ */ G(z, { text: C })]
336
+ }),
337
+ /* @__PURE__ */ K("div", {
338
+ style: {
339
+ padding: "10px 16px",
340
+ borderTop: "1px solid var(--divider)",
341
+ display: "flex",
342
+ alignItems: "center",
343
+ gap: 8,
344
+ background: "var(--surface-2)",
345
+ flexWrap: c ? "wrap" : "nowrap"
346
+ },
347
+ children: [
348
+ /* @__PURE__ */ G("div", { style: { flex: 1 } }),
349
+ /* @__PURE__ */ G(o, {
350
+ onClick: T,
351
+ children: l("dialog.cancel", "Cancel")
352
+ }),
353
+ /* @__PURE__ */ G(o, {
354
+ kind: "primary",
355
+ icon: G(x ? p : a.check, { size: 13 }),
356
+ onClick: async () => {
357
+ if (!_.trim()) w(l("profile.edit.name_required", "Display name is required."));
358
+ else {
359
+ w(null), S(!0);
360
+ try {
361
+ await v(q, { id: n }, { display_name: _.trim() }), await i();
362
+ } catch (e) {
363
+ w(y(d, e));
364
+ } finally {
365
+ S(!1);
366
+ }
367
+ }
368
+ },
369
+ disabled: !_.trim() || x,
370
+ children: x ? l("dialog.saving", "Saving…") : l("dialog.save", "Save")
371
+ })
372
+ ]
373
+ })
374
+ ]
375
+ })] });
376
+ }
377
+ function re() {
378
+ try {
379
+ return Intl.DateTimeFormat().resolvedOptions().timeZone || "—";
380
+ } catch {
381
+ return "—";
382
+ }
383
+ }
384
+ function Q({ userId: e }) {
385
+ let { data: t } = n(), r = t?.entities[q]?.params_scope ?? q;
386
+ return /* @__PURE__ */ G(B, {
387
+ carrierEntityCode: q,
388
+ carrierScope: r,
389
+ rowId: e
390
+ });
391
+ }
392
+ function $({ userId: e }) {
393
+ let t = u(), { data: i } = n(), a = b().data?.find((e) => e.code === r), o = i?.entities[q]?.params_scope ?? q, s = !!a?.scopes?.includes(o), { save: c, error: l, isLoading: d } = x({
394
+ carrierEntityCode: q,
395
+ rowId: e,
396
+ enabled: s
397
+ }), [f, m] = U(!1), g = (i?.languages ?? []).map((e) => ({
398
+ value: e.code,
399
+ label: e.name[e.code] || t(e.name) || e.code
400
+ })), _ = typeof a?.value == "string" ? a.value : t.language, v = async (e) => {
401
+ a && e !== _ && (m(!0), await c(a, e), m(!1));
402
+ };
403
+ return /* @__PURE__ */ G(F, {
404
+ label: t(a?.name),
405
+ mode: s ? "edit" : "display",
406
+ error: l ?? void 0,
407
+ children: !a || d ? /* @__PURE__ */ G(p, { size: 12 }) : s ? /* @__PURE__ */ G(h, {
408
+ "data-testid": "profile-language",
409
+ value: _,
410
+ options: g,
411
+ disabled: f,
412
+ onChange: (e) => void v(e)
413
+ }) : g.find((e) => e.value === _)?.label ?? _
414
+ });
415
+ }
416
+ function ie({ userId: e }) {
417
+ let { data: t } = n();
418
+ if (!e || !t) return null;
419
+ let r = t.entities[q];
420
+ return r ? /* @__PURE__ */ G(P, {
421
+ node: {
422
+ associated: "api_key",
423
+ foreign_key: "user_id"
424
+ },
425
+ ctx: {
426
+ schema: t,
427
+ entity: r,
428
+ entityCode: q,
429
+ recordId: e,
430
+ record: { id: e },
431
+ isNew: !1,
432
+ mode: "display"
433
+ }
434
+ }) : null;
435
+ }
436
+ //#endregion
437
+ export { Y as Profile, $ as ProfileLanguageRow, Q as ProfileParamsBlock };
@@ -0,0 +1,12 @@
1
+ import { Suspense as e, lazy as t } from "react";
2
+ import { jsx as n } from "react/jsx-runtime";
3
+ //#region src/components/pages/profile/Profile.tsx
4
+ var r = t(() => import("./Profile.impl.js").then((e) => ({ default: e.Profile })));
5
+ function i() {
6
+ return /* @__PURE__ */ n(e, {
7
+ fallback: null,
8
+ children: /* @__PURE__ */ n(r, {})
9
+ });
10
+ }
11
+ //#endregion
12
+ export { i as Profile };
@@ -1,11 +1,15 @@
1
- import { It as e, wt as t } from "./useCurrentScreen-BZOHBGQZ.js";
2
- import { t as n } from "./Icons-lt-7lhYR.js";
3
- import { n as r, r as i } from "./CopyButton-DRIT_f0k.js";
4
- import { t as a } from "./Pill-D-wsfRhx.js";
5
- import { $ as o, Q as s, X as c, q as l } from "./PropertyGridEditor-XrP6TZ5s.js";
6
- import { n as u, t as d } from "./useParams-BFLJi4n3.js";
7
- import { t as f } from "./page-inset-D_kkVwwN.js";
8
- import { a as p, i as m, n as h, r as g, t as _ } from "./param-editors-TYYU7HKK.js";
1
+ import { useAuthStore as e } from "../../../stores/auth.js";
2
+ import { Icon as t } from "../../primitives/Icons.js";
3
+ import { Btn as n } from "../../primitives/Btn.js";
4
+ import { IconBtn as r } from "../../primitives/IconBtn.js";
5
+ import { Pill as i } from "../../primitives/Pill.js";
6
+ import { useText as a } from "../../../hooks/useText.js";
7
+ import { BoolToggle as o } from "../../primitives/BoolToggle.js";
8
+ import { Spinner as s } from "../../primitives/Spinner.js";
9
+ import { Select as c, TextInput as l } from "../../primitives/Fields.js";
10
+ import { useAllParams as u, useCarrierParamOverrides as d } from "../../../hooks/useParams.js";
11
+ import { pageInsetX as f } from "../../../lib/page-inset.js";
12
+ import { EditParamDialog as p, ErrorLine as m, ValuePreview as h, paramSourceName as g, paramTenantEditable as _ } from "../../params/param-editors.js";
9
13
  import { useMemo as v, useState as y } from "react";
10
14
  import { Fragment as b, jsx as x, jsxs as S } from "react/jsx-runtime";
11
15
  //#region src/components/pages/tenant-params/TenantParamsPage.impl.tsx
@@ -18,22 +22,23 @@ function T(e) {
18
22
  return e === "tenant" ? "violet" : e === "env" ? "amber" : "slate";
19
23
  }
20
24
  function E(E) {
21
- let k = t(), A = t("errors"), j = e((e) => e.activeTenant?.id) ?? "", M = d("tenant"), [N, P] = y(""), [F, I] = y(""), [L, R] = y(""), [z, B] = y(!1), [V, H] = y(null), { overrideByCode: U, missingParams: W, isLoading: G, error: K, clearError: q, save: J, reset: Y } = u({
25
+ let k = a(), A = a("errors"), j = e((e) => e.activeTenant?.id) ?? "", M = u("tenant"), [N, P] = y(""), [F, I] = y(""), [L, R] = y(""), [z, B] = y(!1), [V, H] = y(null), { overrideByCode: U, missingParams: W, isLoading: G, error: K, clearError: q, save: J, reset: Y } = d({
22
26
  carrierEntityCode: C,
23
- rowId: j,
24
- onWritten: () => H(null)
25
- }), X = v(() => M.data ?? [], [M.data]), Z = v(() => Array.from(new Set(X.map((e) => e.category).filter(Boolean))).sort(), [X]), Q = v(() => {
27
+ rowId: j
28
+ }), X = async (e, t) => {
29
+ await J(e, t) && H((t) => t === e ? null : t);
30
+ }, Z = v(() => M.data ?? [], [M.data]), Q = v(() => Array.from(new Set(Z.map((e) => e.category).filter(Boolean))).sort(), [Z]), $ = v(() => {
26
31
  let e = N.trim().toLowerCase();
27
- return X.filter((t) => !(F && t.category !== F || L && t.source !== L || z && !U.has(t.code) || e && !`${t.code} ${k(t.name)}`.toLowerCase().includes(e)));
32
+ return Z.filter((t) => !(F && t.category !== F || L && t.source !== L || z && !U.has(t.code) || e && !`${t.code} ${k(t.name)}`.toLowerCase().includes(e)));
28
33
  }, [
29
34
  k,
30
- X,
35
+ Z,
31
36
  N,
32
37
  F,
33
38
  L,
34
39
  z,
35
40
  U
36
- ]), $ = M.isLoading || G;
41
+ ]), ee = M.isLoading || G;
37
42
  return /* @__PURE__ */ S("div", {
38
43
  style: {
39
44
  flex: 1,
@@ -69,11 +74,11 @@ function E(E) {
69
74
  }),
70
75
  K && /* @__PURE__ */ x("div", {
71
76
  style: { marginBottom: 12 },
72
- children: /* @__PURE__ */ x(h, { text: K })
77
+ children: /* @__PURE__ */ x(m, { text: K })
73
78
  }),
74
79
  W && /* @__PURE__ */ x("div", {
75
80
  style: { marginBottom: 12 },
76
- children: /* @__PURE__ */ x(h, { text: A("param.overrides_unreadable", "The current parameter overrides could not be read.") })
81
+ children: /* @__PURE__ */ x(m, { text: A("param.overrides_unreadable", "The current parameter overrides could not be read.") })
77
82
  }),
78
83
  /* @__PURE__ */ S("div", {
79
84
  "data-testid": "tenant-params-filters",
@@ -90,7 +95,7 @@ function E(E) {
90
95
  minWidth: 200,
91
96
  flex: 1
92
97
  },
93
- children: /* @__PURE__ */ x(c, {
98
+ children: /* @__PURE__ */ x(l, {
94
99
  value: N,
95
100
  onChange: P,
96
101
  placeholder: k("params.search", "Search name or code…")
@@ -98,12 +103,12 @@ function E(E) {
98
103
  }),
99
104
  /* @__PURE__ */ x("div", {
100
105
  style: { minWidth: 160 },
101
- children: /* @__PURE__ */ x(l, {
106
+ children: /* @__PURE__ */ x(c, {
102
107
  value: F,
103
108
  options: [{
104
109
  value: "",
105
110
  label: k("params.filter.all_categories", "All categories")
106
- }, ...Z.map((e) => ({
111
+ }, ...Q.map((e) => ({
107
112
  value: e,
108
113
  label: e
109
114
  }))],
@@ -112,14 +117,14 @@ function E(E) {
112
117
  }),
113
118
  /* @__PURE__ */ x("div", {
114
119
  style: { minWidth: 140 },
115
- children: /* @__PURE__ */ x(l, {
120
+ children: /* @__PURE__ */ x(c, {
116
121
  value: L,
117
122
  options: [{
118
123
  value: "",
119
124
  label: k("params.filter.all_sources", "All sources")
120
125
  }, ...w.map((e) => ({
121
126
  value: e,
122
- label: m(k, e)
127
+ label: g(k, e)
123
128
  }))],
124
129
  onChange: R
125
130
  })
@@ -138,7 +143,7 @@ function E(E) {
138
143
  })
139
144
  ]
140
145
  }),
141
- $ ? /* @__PURE__ */ x("div", {
146
+ ee ? /* @__PURE__ */ x("div", {
142
147
  style: {
143
148
  padding: "24px 0",
144
149
  textAlign: "center"
@@ -147,7 +152,7 @@ function E(E) {
147
152
  }) : /* @__PURE__ */ x("div", {
148
153
  style: {
149
154
  border: "1px solid var(--border)",
150
- borderRadius: 10,
155
+ borderRadius: "var(--radius-lg)",
151
156
  overflow: "hidden",
152
157
  background: "var(--surface)"
153
158
  },
@@ -171,7 +176,7 @@ function E(E) {
171
176
  /* @__PURE__ */ x(D, { children: k("params.column.source", "Source") }),
172
177
  /* @__PURE__ */ x(D, { children: "" })
173
178
  ]
174
- }) }), /* @__PURE__ */ x("tbody", { children: Q.length === 0 ? /* @__PURE__ */ x("tr", { children: /* @__PURE__ */ x("td", {
179
+ }) }), /* @__PURE__ */ x("tbody", { children: $.length === 0 ? /* @__PURE__ */ x("tr", { children: /* @__PURE__ */ x("td", {
175
180
  colSpan: 7,
176
181
  style: {
177
182
  padding: "16px",
@@ -179,8 +184,8 @@ function E(E) {
179
184
  textAlign: "center"
180
185
  },
181
186
  children: k("params.empty", "No parameters match.")
182
- }) }) : Q.map((e) => {
183
- let t = U.get(e.code), o = t !== void 0, s = p(e), c = o && e.source === "tenant";
187
+ }) }) : $.map((e) => {
188
+ let a = U.get(e.code), o = a !== void 0, s = _(e), c = o && e.source === "tenant";
184
189
  return /* @__PURE__ */ S("tr", {
185
190
  "data-testid": `tenant-param-row-${e.code}`,
186
191
  style: { borderTop: "1px solid var(--divider)" },
@@ -193,7 +198,7 @@ function E(E) {
193
198
  }) }),
194
199
  /* @__PURE__ */ x(O, { children: e.category ?? "—" }),
195
200
  /* @__PURE__ */ x(O, { children: e.type }),
196
- /* @__PURE__ */ x(O, { children: /* @__PURE__ */ x(g, {
201
+ /* @__PURE__ */ x(O, { children: /* @__PURE__ */ x(h, {
197
202
  type: e.type,
198
203
  value: e.value,
199
204
  structure: e.structure
@@ -205,12 +210,12 @@ function E(E) {
205
210
  alignItems: "center"
206
211
  },
207
212
  children: [
208
- /* @__PURE__ */ x(a, {
213
+ /* @__PURE__ */ x(i, {
209
214
  tone: T(e.source),
210
215
  size: "xs",
211
- children: m(k, e.source)
216
+ children: g(k, e.source)
212
217
  }),
213
- c && /* @__PURE__ */ x(a, {
218
+ c && /* @__PURE__ */ x(i, {
214
219
  tone: "violet",
215
220
  size: "xs",
216
221
  dot: !0,
@@ -219,10 +224,10 @@ function E(E) {
219
224
  o && !c && /* @__PURE__ */ x("span", {
220
225
  "data-testid": `tenant-param-not-applied-${e.code}`,
221
226
  title: k("params.tenant.not_applied_hint", "This tenant is set to {value}, and it no longer satisfies the parameter's declaration. Source of the value in effect: {source}. Reset to remove it, or edit it to a value the declaration accepts.", {
222
- value: JSON.stringify(t.value),
223
- source: m(k, e.source)
227
+ value: JSON.stringify(a.value),
228
+ source: g(k, e.source)
224
229
  }),
225
- children: /* @__PURE__ */ x(a, {
230
+ children: /* @__PURE__ */ x(i, {
226
231
  tone: "amber",
227
232
  size: "xs",
228
233
  dot: !0,
@@ -238,15 +243,15 @@ function E(E) {
238
243
  justifyContent: "flex-end",
239
244
  width: "100%"
240
245
  },
241
- children: s ? /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(i, {
246
+ children: s ? /* @__PURE__ */ S(b, { children: [/* @__PURE__ */ x(n, {
242
247
  size: "xs",
243
- icon: /* @__PURE__ */ x(n.edit, { size: 12 }),
248
+ icon: /* @__PURE__ */ x(t.edit, { size: 12 }),
244
249
  onClick: () => {
245
250
  q(), H(e);
246
251
  },
247
252
  children: k("params.edit", "Edit")
248
253
  }), o && /* @__PURE__ */ x(r, {
249
- icon: /* @__PURE__ */ x(n.refresh, { size: 13 }),
254
+ icon: /* @__PURE__ */ x(t.refresh, { size: 13 }),
250
255
  title: k("params.reset", "Reset to default"),
251
256
  onClick: () => Y(e)
252
257
  })] }) : /* @__PURE__ */ S("span", {
@@ -259,7 +264,7 @@ function E(E) {
259
264
  fontSize: 11
260
265
  },
261
266
  children: [
262
- /* @__PURE__ */ x(n.lock, { size: 12 }),
267
+ /* @__PURE__ */ x(t.lock, { size: 12 }),
263
268
  " ",
264
269
  k("params.read_only", "read-only")
265
270
  ]
@@ -271,14 +276,14 @@ function E(E) {
271
276
  })
272
277
  })
273
278
  ]
274
- }), V && /* @__PURE__ */ x(_, {
279
+ }), V && /* @__PURE__ */ x(p, {
275
280
  param: V,
276
281
  current: U.get(V.code)?.value ?? V.value,
277
282
  error: K,
278
283
  onCancel: () => {
279
284
  H(null), q();
280
285
  },
281
- onSave: (e) => J(V, e)
286
+ onSave: (e) => X(V, e)
282
287
  })]
283
288
  });
284
289
  }