@declarion/react 0.65.1 → 0.66.1

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,66 @@
1
+ import { Pill as e } from "../primitives/Pill.js";
2
+ import { useText as t } from "../../hooks/useText.js";
3
+ import { verdictLabel as n, verdictTone as r } from "../../lib/evidence-verdict.js";
4
+ import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
+ //#region src/components/detail-layout/EvidenceBlock.tsx
6
+ function o(e, t) {
7
+ if (!e) return;
8
+ let n = new Date(e);
9
+ if (!Number.isNaN(n.getTime())) return n.toLocaleString(t);
10
+ }
11
+ function s({ evidence: s }) {
12
+ let c = t(), l = s?.verdict ?? "unverified", u = o(s?.verified_at, c.language), d = [];
13
+ return s?.seq && d.push(c("record.evidence.chain", "chain #{seq}", { seq: s.seq })), s?.generation && d.push(c("record.evidence.generation", "generation {number}", { number: s.generation })), /* @__PURE__ */ a("div", {
14
+ style: {
15
+ display: "flex",
16
+ flexDirection: "column",
17
+ gap: 6
18
+ },
19
+ children: [/* @__PURE__ */ a("div", {
20
+ style: {
21
+ display: "flex",
22
+ alignItems: "center",
23
+ gap: 10,
24
+ flexWrap: "wrap"
25
+ },
26
+ children: [
27
+ /* @__PURE__ */ i("span", {
28
+ style: {
29
+ fontSize: 12,
30
+ fontWeight: 600,
31
+ color: "var(--muted-foreground)"
32
+ },
33
+ children: c("record.evidence.title", "Evidence")
34
+ }),
35
+ d.length > 0 && /* @__PURE__ */ i("span", {
36
+ style: {
37
+ fontSize: 12,
38
+ color: "var(--muted-foreground)"
39
+ },
40
+ children: d.join(" · ")
41
+ }),
42
+ /* @__PURE__ */ i(e, {
43
+ tone: r(l),
44
+ size: "sm",
45
+ dot: !0,
46
+ children: n(c, l)
47
+ }),
48
+ u && /* @__PURE__ */ i("span", {
49
+ style: {
50
+ fontSize: 12,
51
+ color: "var(--muted-foreground)"
52
+ },
53
+ children: c("record.evidence.verified", "Verified {when}", { when: u })
54
+ })
55
+ ]
56
+ }), s?.reason && /* @__PURE__ */ i("span", {
57
+ style: {
58
+ fontSize: 12,
59
+ color: "var(--destructive)"
60
+ },
61
+ children: s.reason
62
+ })]
63
+ });
64
+ }
65
+ //#endregion
66
+ export { s as EvidenceBlock };
@@ -1,6 +1,7 @@
1
- import { wn as e, wt as t } from "./useCurrentScreen-BZOHBGQZ.js";
2
- import { t as n } from "./Icons-lt-7lhYR.js";
3
- import { t as r } from "./CopyButton-DRIT_f0k.js";
1
+ import { coerceDisplayString as e } from "../../lib/display-value.js";
2
+ import { Icon as t } from "../primitives/Icons.js";
3
+ import { useText as n } from "../../hooks/useText.js";
4
+ import { CopyButton as r } from "../shared/CopyButton.js";
4
5
  import { createContext as i, useContext as a, useLayoutEffect as o, useRef as s, useState as c } from "react";
5
6
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
6
7
  //#region src/components/detail-layout/FieldRow.tsx
@@ -50,7 +51,7 @@ function y({ columns: e = 2, children: t }) {
50
51
  });
51
52
  }
52
53
  function b({ label: e, children: i, span: o = !1, required: s, error: c, hint: f, actions: p, copyValue: g, mode: _ = "display", htmlFor: y, labelId: b, labelTitle: x, "data-testid": S }) {
53
- let C = t(), w = a(v), T = o || w.stackPairs, E = !!c;
54
+ let C = n(), w = a(v), T = o || w.stackPairs, E = !!c;
54
55
  return /* @__PURE__ */ u("div", {
55
56
  className: "detail-row",
56
57
  "data-error": E || void 0,
@@ -120,7 +121,7 @@ function b({ label: e, children: i, span: o = !1, required: s, error: c, hint: f
120
121
  },
121
122
  children: E && _ === "edit" ? /* @__PURE__ */ l("div", {
122
123
  style: {
123
- borderRadius: 6,
124
+ borderRadius: "var(--radius-md)",
124
125
  boxShadow: "0 0 0 1.5px var(--danger)"
125
126
  },
126
127
  children: i
@@ -148,10 +149,10 @@ function b({ label: e, children: i, span: o = !1, required: s, error: c, hint: f
148
149
  alignItems: "center",
149
150
  gap: 4
150
151
  },
151
- children: [E && /* @__PURE__ */ l(n.warning, { size: 11 }), /* @__PURE__ */ l("span", { children: E ? c : f })]
152
+ children: [E && /* @__PURE__ */ l(t.warning, { size: 11 }), /* @__PURE__ */ l("span", { children: E ? c : f })]
152
153
  })]
153
154
  })]
154
155
  });
155
156
  }
156
157
  //#endregion
157
- export { g as i, y as n, _ as r, b as t };
158
+ export { b as FieldRow, y as FieldsGrid, _ as SPAN_FIELD_TYPES, g as copyableValue };
@@ -0,0 +1,74 @@
1
+ import { useText as e } from "../../hooks/useText.js";
2
+ import { ClassifiedFieldLocked as t } from "../primitives/ClassifiedFieldLocked.js";
3
+ import { classificationTier as n, fieldAccessInfo as r } from "../../lib/field-classification.js";
4
+ import { renderSchemaField as i, resolveSchemaFieldLabel as a, schemaFieldHasValue as o } from "../file-widgets/host.js";
5
+ import { ActionButton as s } from "../actions/ActionButton.js";
6
+ import { FieldRow as c, FieldsGrid as l, SPAN_FIELD_TYPES as u, copyableValue as d } from "./FieldRow.js";
7
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
8
+ //#region src/components/detail-layout/FieldsBlock.tsx
9
+ function h({ fields: h, ctx: g }) {
10
+ let _ = e(), { entity: v, entityCode: y, record: b, mode: x, onFieldChange: S, schema: C } = g, w = g.columns ?? 2, T = g.hideEmptyFields && x === "display" ? h.filter((e) => o(v, b, e.code)) : h, E = w === 1 && h.length === 1;
11
+ return T.length === 0 ? null : /* @__PURE__ */ p(l, {
12
+ columns: w,
13
+ children: T.map((e) => {
14
+ let o = e.code, l = `${y ?? "field"}-${o}`, h = `${l}-label`, w = v.fields.get(o), T = !!(w?.auto || w?.readonly || w?.source), D = r(v, o), O = D?.read === "denied", k = D?.write === "denied", A = x === "display" ? O : k || O, j = T || x === "edit" && k ? "display" : x, M = A ? /* @__PURE__ */ p(t, {
15
+ tier: D.classification,
16
+ tierDef: n(C, v, o),
17
+ requiredPermission: D?.required_permission,
18
+ variant: j === "edit" ? "input" : "value"
19
+ }) : i({
20
+ entity: v,
21
+ entityCode: y,
22
+ fieldName: o,
23
+ record: b,
24
+ mode: j,
25
+ onChange: S && !T ? (e) => S(o, e) : void 0,
26
+ refs: g.refs,
27
+ entities: C?.entities,
28
+ screens: C?.screens,
29
+ t: _,
30
+ fieldId: l,
31
+ labelId: h,
32
+ structure: e.structure,
33
+ detailScreen: e.detail_screen
34
+ });
35
+ if (!M) return null;
36
+ let N = x === "display" && e.actions && e.actions.length > 0 ? /* @__PURE__ */ p(f, { children: e.actions.map((e, t) => /* @__PURE__ */ p(s, {
37
+ actionCode: `${o}.action[${t}]`,
38
+ action: e,
39
+ entityCode: y,
40
+ row: b,
41
+ variant: "ghost",
42
+ size: "icon"
43
+ }, t)) }) : void 0, P = !!w && u.has(w.type), F = j === "display" ? d(w, b?.[o]) : void 0, I = _(w?.display?.description);
44
+ return E && (P || e.structure) ? /* @__PURE__ */ m("div", {
45
+ style: { gridColumn: "1 / -1" },
46
+ children: [M, j === "edit" && I && /* @__PURE__ */ p("div", {
47
+ style: {
48
+ fontSize: 11.5,
49
+ lineHeight: 1.4,
50
+ color: "var(--text-3)",
51
+ marginTop: 3
52
+ },
53
+ children: I
54
+ })]
55
+ }, o) : /* @__PURE__ */ p(c, {
56
+ "data-testid": `field-${o}`,
57
+ label: a(_, v, o, C.entities),
58
+ htmlFor: j === "edit" ? l : void 0,
59
+ labelId: h,
60
+ labelTitle: I || void 0,
61
+ required: w?.required ?? !1,
62
+ mode: j,
63
+ span: P,
64
+ error: g.fieldErrors?.[o],
65
+ hint: j === "edit" && I ? I : void 0,
66
+ actions: N,
67
+ copyValue: F,
68
+ children: M
69
+ }, o);
70
+ })
71
+ });
72
+ }
73
+ //#endregion
74
+ export { h as FieldsBlock };
@@ -0,0 +1,16 @@
1
+ import { LayoutNodeRenderer as e } from "./LayoutRenderer.js";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ //#region src/components/detail-layout/LayoutColumn.tsx
4
+ function n({ config: n, ctx: r }) {
5
+ let { items: i, gap: a = 12 } = n;
6
+ return /* @__PURE__ */ t("div", {
7
+ className: "flex flex-col h-full",
8
+ style: { gap: a ? `${a}px` : void 0 },
9
+ children: i.map((n, i) => /* @__PURE__ */ t(e, {
10
+ node: n,
11
+ ctx: r
12
+ }, i))
13
+ });
14
+ }
15
+ //#endregion
16
+ export { n as LayoutColumn };
@@ -0,0 +1,54 @@
1
+ import { LayoutRow as e } from "./LayoutRow.js";
2
+ import { LayoutColumn as t } from "./LayoutColumn.js";
3
+ import { LayoutTabs as n } from "./LayoutTabs.js";
4
+ import { SectionBlock as r } from "./SectionBlock.js";
5
+ import { ChildrenBlock as i } from "./ChildrenBlock.js";
6
+ import { AssociatedBlock as a } from "./AssociatedBlock.js";
7
+ import { FieldsBlock as o } from "./FieldsBlock.js";
8
+ import { PropertiesBlock as s } from "./PropertiesBlock.js";
9
+ import { StatusesBlock as c } from "./StatusesBlock.js";
10
+ import { WidgetHost as l } from "./widgets/WidgetHost.js";
11
+ import { Fragment as u, jsx as d } from "react/jsx-runtime";
12
+ //#region src/components/detail-layout/LayoutRenderer.tsx
13
+ function f({ nodes: e, ctx: t }) {
14
+ return /* @__PURE__ */ d(u, { children: e.map((e, n) => /* @__PURE__ */ d(p, {
15
+ node: e,
16
+ ctx: t
17
+ }, n)) });
18
+ }
19
+ function p({ node: u, ctx: f }) {
20
+ return u.row ? /* @__PURE__ */ d(e, {
21
+ config: u.row,
22
+ ctx: f
23
+ }) : u.column ? /* @__PURE__ */ d(t, {
24
+ config: u.column,
25
+ node: u,
26
+ ctx: f
27
+ }) : u.tabs ? /* @__PURE__ */ d(n, {
28
+ config: u.tabs,
29
+ ctx: f
30
+ }) : u.section ? /* @__PURE__ */ d(r, {
31
+ config: u.section,
32
+ ctx: f
33
+ }) : u.children ? /* @__PURE__ */ d(i, {
34
+ node: u,
35
+ ctx: f
36
+ }) : u.associated ? /* @__PURE__ */ d(a, {
37
+ node: u,
38
+ ctx: f
39
+ }) : u.fields ? /* @__PURE__ */ d(o, {
40
+ fields: u.fields,
41
+ ctx: f
42
+ }) : u.properties == null ? u.statuses == null ? u.widget ? /* @__PURE__ */ d(l, {
43
+ config: u.widget,
44
+ ctx: f
45
+ }) : null : /* @__PURE__ */ d(c, {
46
+ node: u,
47
+ ctx: f
48
+ }) : /* @__PURE__ */ d(s, {
49
+ node: u,
50
+ ctx: f
51
+ });
52
+ }
53
+ //#endregion
54
+ export { p as LayoutNodeRenderer, f as LayoutRenderer };
@@ -0,0 +1,83 @@
1
+ import { cn as e } from "../../lib/utils.js";
2
+ import { parseSizeValue as t } from "../../lib/size-value.js";
3
+ import { LayoutNodeRenderer as n } from "./LayoutRenderer.js";
4
+ import { useCallback as r, useEffect as i, useRef as a, useState as o } from "react";
5
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
+ //#region src/components/detail-layout/LayoutRow.tsx
7
+ function l({ config: l, ctx: f }) {
8
+ let { items: p, gap: m = 0, resizable: h = !1, stack_below: g } = l, _ = g === "never" ? 0 : g ?? 768, [v, y] = o(!1), b = a(null);
9
+ i(() => {
10
+ if (_ === 0) return;
11
+ let e = b.current;
12
+ if (!e) return;
13
+ let t = new ResizeObserver((e) => {
14
+ for (let t of e) y(t.contentRect.width < _);
15
+ });
16
+ return t.observe(e), () => t.disconnect();
17
+ }, [_]);
18
+ let [x, S] = o(null), C = a(null), w = r(() => p.map((e) => {
19
+ let n = e.width ?? e.column?.width ?? e.row?.width ?? l.width, r = t(n);
20
+ return r && r.kind === "weight" ? r.value : 1;
21
+ }), [p, l.width]), T = r((e, t) => {
22
+ t.preventDefault();
23
+ let n = x ?? w();
24
+ C.current = {
25
+ index: e,
26
+ startX: t.clientX,
27
+ startSizes: [...n]
28
+ };
29
+ let r = (e) => {
30
+ let t = C.current;
31
+ if (!t || !b.current) return;
32
+ let n = b.current.getBoundingClientRect().width, r = e.clientX - t.startX, i = t.startSizes.reduce((e, t) => e + t, 0), a = r / n * i, o = [...t.startSizes];
33
+ o[t.index] = Math.max(.1, t.startSizes[t.index] + a), o[t.index + 1] = Math.max(.1, t.startSizes[t.index + 1] - a), S(o);
34
+ }, i = () => {
35
+ C.current = null, document.removeEventListener("mousemove", r), document.removeEventListener("mouseup", i);
36
+ };
37
+ document.addEventListener("mousemove", r), document.addEventListener("mouseup", i);
38
+ }, [x, w]), E = x ?? w(), D = l.height ? d(l.height) : void 0;
39
+ return /* @__PURE__ */ s("div", {
40
+ ref: b,
41
+ className: e("flex", v && "flex-col"),
42
+ style: {
43
+ gap: m ? `${m}px` : void 0,
44
+ ...D
45
+ },
46
+ children: p.map((t, r) => /* @__PURE__ */ c("div", {
47
+ className: e("min-w-0 flex items-stretch", v && "w-full"),
48
+ style: v ? void 0 : u(t.width ?? t.column?.width ?? t.row?.width ?? l.width, E[r], t.min_width, t.max_width),
49
+ children: [/* @__PURE__ */ s("div", {
50
+ className: e("flex-1 min-w-0 flex flex-col", D && "overflow-y-auto overflow-x-hidden"),
51
+ children: /* @__PURE__ */ s(n, {
52
+ node: t,
53
+ ctx: f
54
+ })
55
+ }), h && !v && r < p.length - 1 && /* @__PURE__ */ s("div", {
56
+ className: "detail-resize-handle",
57
+ onMouseDown: (e) => T(r, e)
58
+ })]
59
+ }, r))
60
+ });
61
+ }
62
+ function u(e, n, r, i) {
63
+ let a = t(e), o;
64
+ return o = !a || a.kind === "weight" ? `${n} 1 0%` : a.kind === "px" ? `0 0 ${a.value}px` : a.kind === "fill" ? "1 1 0%" : "0 0 auto", {
65
+ flex: o,
66
+ minWidth: r,
67
+ maxWidth: i
68
+ };
69
+ }
70
+ function d(e) {
71
+ if (!e) return;
72
+ let n = t(e);
73
+ if (n?.kind === "px") return {
74
+ height: `${n.value}px`,
75
+ overflow: "hidden"
76
+ };
77
+ if (typeof e == "string" && (e.includes("vh") || e.includes("calc") || e.includes("%"))) return {
78
+ height: e,
79
+ overflow: "hidden"
80
+ };
81
+ }
82
+ //#endregion
83
+ export { l as LayoutRow };
@@ -0,0 +1,195 @@
1
+ import { useText as e } from "../../hooks/useText.js";
2
+ import { useResponsiveMode as t } from "../../hooks/useResponsiveMode.js";
3
+ import { DynamicIcon as n } from "../shared/DynamicIcon.js";
4
+ import { resolveBlockIcon as r, resolveBlockLabel as i } from "./blockMeta.js";
5
+ import { LayoutNodeRenderer as a } from "./LayoutRenderer.js";
6
+ import { useState as o } from "react";
7
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
8
+ //#region src/components/detail-layout/LayoutTabs.tsx
9
+ function l({ config: l, ctx: u }) {
10
+ let d = e(), { items: f } = l, [p, m] = o(0), h = t(), g = u.detailTabsPresentation ?? (h.isPhone ? "sections" : "scroll");
11
+ if (f.length === 0) return null;
12
+ if (g === "sections") {
13
+ let e = f.map((e, t) => `detail-tab-section-${t}`);
14
+ return /* @__PURE__ */ c("div", {
15
+ style: {
16
+ display: "flex",
17
+ flexDirection: "column",
18
+ gap: 10,
19
+ minWidth: 0
20
+ },
21
+ children: [f.length > 1 && /* @__PURE__ */ s("nav", {
22
+ "aria-label": d("record.tabs.sections", "Detail sections"),
23
+ style: {
24
+ display: "flex",
25
+ gap: 6,
26
+ overflowX: "auto",
27
+ padding: "0 2px 2px",
28
+ WebkitOverflowScrolling: "touch"
29
+ },
30
+ children: f.map((t, a) => {
31
+ let o = i(t, u, d), l = r(t, u);
32
+ return /* @__PURE__ */ c("button", {
33
+ type: "button",
34
+ onClick: () => document.getElementById(e[a])?.scrollIntoView({
35
+ block: "start",
36
+ behavior: "smooth"
37
+ }),
38
+ style: {
39
+ display: "inline-flex",
40
+ alignItems: "center",
41
+ gap: 6,
42
+ minHeight: 36,
43
+ maxWidth: 220,
44
+ padding: "7px 10px",
45
+ border: "1px solid var(--border)",
46
+ borderRadius: "var(--radius-md)",
47
+ background: "var(--surface)",
48
+ color: "var(--text-2)",
49
+ fontSize: 12.5,
50
+ fontWeight: 600,
51
+ whiteSpace: "nowrap",
52
+ cursor: "pointer"
53
+ },
54
+ children: [l && /* @__PURE__ */ s(n, {
55
+ name: l,
56
+ size: 13
57
+ }), /* @__PURE__ */ s("span", {
58
+ style: {
59
+ overflow: "hidden",
60
+ textOverflow: "ellipsis"
61
+ },
62
+ children: o
63
+ })]
64
+ }, a);
65
+ })
66
+ }), f.map((t, o) => {
67
+ let l = i(t, u, d), f = r(t, u);
68
+ return /* @__PURE__ */ c("section", {
69
+ id: e[o],
70
+ style: {
71
+ background: "var(--surface)",
72
+ border: "1px solid var(--border)",
73
+ borderRadius: "var(--radius-lg)",
74
+ boxShadow: "var(--shadow-xs)",
75
+ overflow: "hidden",
76
+ minWidth: 0,
77
+ scrollMarginTop: 12
78
+ },
79
+ children: [/* @__PURE__ */ c("div", {
80
+ style: {
81
+ display: "flex",
82
+ alignItems: "center",
83
+ gap: 8,
84
+ padding: "12px 14px",
85
+ borderBottom: "1px solid var(--divider)",
86
+ color: "var(--text)",
87
+ fontSize: 13,
88
+ fontWeight: 700
89
+ },
90
+ children: [f && /* @__PURE__ */ s(n, {
91
+ name: f,
92
+ size: 14
93
+ }), /* @__PURE__ */ s("span", {
94
+ style: { overflowWrap: "anywhere" },
95
+ children: l
96
+ })]
97
+ }), /* @__PURE__ */ s("div", {
98
+ style: {
99
+ padding: 14,
100
+ minWidth: 0
101
+ },
102
+ children: /* @__PURE__ */ s(a, {
103
+ node: t,
104
+ ctx: {
105
+ ...u,
106
+ withinCard: !0
107
+ }
108
+ })
109
+ })]
110
+ }, o);
111
+ })]
112
+ });
113
+ }
114
+ return /* @__PURE__ */ c("div", {
115
+ style: {
116
+ background: "var(--surface)",
117
+ border: "1px solid var(--border)",
118
+ borderRadius: "var(--radius-lg)",
119
+ overflow: "hidden",
120
+ boxShadow: "var(--shadow-xs)",
121
+ flexShrink: 0
122
+ },
123
+ children: [/* @__PURE__ */ s("div", {
124
+ role: "tablist",
125
+ style: {
126
+ display: "flex",
127
+ alignItems: "stretch",
128
+ gap: 4,
129
+ borderBottom: "1px solid var(--divider)",
130
+ padding: "6px 10px 0 10px",
131
+ overflowX: "auto"
132
+ },
133
+ children: f.map((e, t) => {
134
+ let a = i(e, u, d), o = r(e, u), l = t === p;
135
+ return /* @__PURE__ */ c("button", {
136
+ role: "tab",
137
+ "aria-selected": l,
138
+ onClick: (e) => {
139
+ e.stopPropagation(), m(t);
140
+ },
141
+ style: {
142
+ position: "relative",
143
+ display: "inline-flex",
144
+ alignItems: "center",
145
+ gap: 6,
146
+ padding: "8px 12px",
147
+ background: "transparent",
148
+ border: 0,
149
+ cursor: "pointer",
150
+ fontSize: 12.5,
151
+ fontWeight: 500,
152
+ fontFamily: "inherit",
153
+ color: l ? "var(--text)" : "var(--text-3)",
154
+ whiteSpace: "nowrap",
155
+ transition: "color .12s"
156
+ },
157
+ onMouseEnter: (e) => {
158
+ l || (e.currentTarget.style.color = "var(--text-2)");
159
+ },
160
+ onMouseLeave: (e) => {
161
+ l || (e.currentTarget.style.color = "var(--text-3)");
162
+ },
163
+ children: [
164
+ o && /* @__PURE__ */ s(n, {
165
+ name: o,
166
+ size: 13
167
+ }),
168
+ a,
169
+ l && /* @__PURE__ */ s("span", { style: {
170
+ position: "absolute",
171
+ left: 4,
172
+ right: 4,
173
+ bottom: -1,
174
+ height: 2,
175
+ background: "var(--accent)",
176
+ borderRadius: "var(--radius-xs)"
177
+ } })
178
+ ]
179
+ }, t);
180
+ })
181
+ }), /* @__PURE__ */ s("div", {
182
+ role: "tabpanel",
183
+ style: { padding: 14 },
184
+ children: /* @__PURE__ */ s(a, {
185
+ node: f[p],
186
+ ctx: {
187
+ ...u,
188
+ withinCard: !0
189
+ }
190
+ }, p)
191
+ })]
192
+ });
193
+ }
194
+ //#endregion
195
+ export { l as LayoutTabs };
@@ -0,0 +1,74 @@
1
+ import { propertyToField as e } from "../../types/schema.js";
2
+ import { useText as t } from "../../hooks/useText.js";
3
+ import { ClassifiedFieldLocked as n } from "../primitives/ClassifiedFieldLocked.js";
4
+ import { classificationTier as r, fieldAccessInfo as i } from "../../lib/field-classification.js";
5
+ import { renderField as a } from "../fields/index.js";
6
+ import { FieldRow as o, FieldsGrid as s, SPAN_FIELD_TYPES as c } from "./FieldRow.js";
7
+ import { useCallback as l, useEffect as u, useRef as d } from "react";
8
+ import { jsx as f } from "react/jsx-runtime";
9
+ //#region src/components/detail-layout/PropertiesBlock.tsx
10
+ var p = /* @__PURE__ */ new Set([
11
+ "string",
12
+ "text",
13
+ "int",
14
+ "float",
15
+ "decimal",
16
+ "email",
17
+ "url"
18
+ ]), m = 500;
19
+ function h({ node: t, ctx: n }) {
20
+ let { entity: r, objectProperties: i, onSetProperty: a, isNew: o, mode: c, refs: l } = n, u = r.properties ?? {};
21
+ if (o) return null;
22
+ let d = t.properties === !0 || t.properties, p = d === !0 ? Object.entries(u).sort(([e], [t]) => e.localeCompare(t)) : d.filter((e) => u[e] != null).map((e) => [e, u[e]]);
23
+ return p.length === 0 ? null : /* @__PURE__ */ f(s, {
24
+ columns: 2,
25
+ children: p.map(([t, o]) => {
26
+ let s = i?.find((e) => e.property_code === t), u = e(o), d = o.readonly || !a ? "display" : c;
27
+ return /* @__PURE__ */ f(g, {
28
+ propCode: t,
29
+ prop: o,
30
+ field: u,
31
+ value: s?.value,
32
+ mode: d,
33
+ onSetProperty: a,
34
+ refs: l,
35
+ entity: r,
36
+ schema: n.schema
37
+ }, t);
38
+ })
39
+ });
40
+ }
41
+ function g({ propCode: e, prop: s, field: h, value: g, mode: _, onSetProperty: v, refs: y, entity: b, schema: x }) {
42
+ let S = t(), C = d(null);
43
+ u(() => () => {
44
+ C.current && clearTimeout(C.current);
45
+ }, []);
46
+ let w = l((t) => {
47
+ v && (p.has(s.type) ? (C.current && clearTimeout(C.current), C.current = setTimeout(() => v(e, t), m)) : v(e, t));
48
+ }, [
49
+ e,
50
+ s.type,
51
+ v
52
+ ]), T = i(b, e), E = T?.read === "denied", D = T?.write === "denied", O = _ === "display" ? E : D || E, k = _ === "edit" && D ? "display" : _;
53
+ return /* @__PURE__ */ f(o, {
54
+ label: S(s.display?.name ?? s.name),
55
+ mode: k,
56
+ span: c.has(s.type),
57
+ children: O ? /* @__PURE__ */ f(n, {
58
+ tier: T.classification,
59
+ tierDef: r(x, b, e),
60
+ requiredPermission: T?.required_permission,
61
+ variant: k === "edit" ? "input" : "value"
62
+ }) : a({
63
+ field: h,
64
+ fieldName: e,
65
+ value: g,
66
+ mode: k,
67
+ onChange: k === "edit" ? w : void 0,
68
+ refs: y,
69
+ t: S
70
+ })
71
+ });
72
+ }
73
+ //#endregion
74
+ export { h as PropertiesBlock };
@@ -0,0 +1,81 @@
1
+ import { fieldDisplayName as e } from "../../types/schema.js";
2
+ import { Icon as t } from "../primitives/Icons.js";
3
+ import { Btn as n } from "../primitives/Btn.js";
4
+ import { useText as r } from "../../hooks/useText.js";
5
+ import { useResponsiveMode as i } from "../../hooks/useResponsiveMode.js";
6
+ import { failureTitle as a } from "../../lib/failure.js";
7
+ import { renderField as o } from "../fields/index.js";
8
+ import { useQuickAdd as s } from "./useQuickAdd.js";
9
+ import { useId as c } from "react";
10
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
11
+ //#region src/components/detail-layout/QuickAddForm.tsx
12
+ function d({ config: d, parentEntity: f, parentId: p, schema: m }) {
13
+ let h = r(), g = r("errors"), { values: _, quickAdd: v, childEntity: y, isPending: b, error: x, isReady: S, handleSubmit: C, handleFieldChange: w } = s(d, f, p, m), T = i(), E = c();
14
+ return !v || v.fields.length === 0 || !y ? null : /* @__PURE__ */ u("form", {
15
+ onSubmit: C,
16
+ style: {
17
+ display: "flex",
18
+ flexDirection: T.isPhone ? "column" : "row",
19
+ alignItems: "flex-end",
20
+ gap: 8,
21
+ padding: "8px 0",
22
+ borderBottom: "1px solid var(--divider)"
23
+ },
24
+ children: [
25
+ v.fields.map((t) => {
26
+ let n = y.fields.get(t);
27
+ if (!n) return null;
28
+ let r = `${E}-quick-add-${d.entity}-${t}`, i = `${r}-label`;
29
+ return /* @__PURE__ */ u("div", {
30
+ style: {
31
+ flex: 1,
32
+ minWidth: 0,
33
+ width: T.isPhone ? "100%" : void 0
34
+ },
35
+ children: [/* @__PURE__ */ l("label", {
36
+ id: i,
37
+ htmlFor: r,
38
+ style: {
39
+ fontSize: 11,
40
+ color: "var(--text-3)",
41
+ marginBottom: 4,
42
+ display: "block",
43
+ fontWeight: 500
44
+ },
45
+ children: e(h, n, t, m.entities)
46
+ }), o({
47
+ field: n,
48
+ fieldName: t,
49
+ value: _[t] ?? "",
50
+ mode: "edit",
51
+ onChange: (e) => w(t, e),
52
+ record: _,
53
+ fieldId: r,
54
+ labelId: i,
55
+ t: h
56
+ })]
57
+ }, t);
58
+ }),
59
+ /* @__PURE__ */ l(n, {
60
+ type: "submit",
61
+ kind: "primary",
62
+ size: T.isPhone ? "md" : "sm",
63
+ icon: /* @__PURE__ */ l(t.plus, { size: 12 }),
64
+ disabled: b || !S,
65
+ style: T.isPhone ? { alignSelf: "flex-end" } : void 0,
66
+ children: h("record.related.add", "Add")
67
+ }),
68
+ x != null && /* @__PURE__ */ l("span", {
69
+ style: {
70
+ fontSize: 11,
71
+ color: "var(--danger)",
72
+ alignSelf: "flex-end",
73
+ marginBottom: 4
74
+ },
75
+ children: a(g, x)
76
+ })
77
+ ]
78
+ });
79
+ }
80
+ //#endregion
81
+ export { d as QuickAddForm };