@object-ui/plugin-detail 14.0.0 → 15.0.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,269 @@
1
1
  # @object-ui/plugin-detail
2
2
 
3
+ ## 15.0.0
4
+
5
+ ### Patch Changes
6
+
7
+ - bb22788: Inline-edit field enrichment passes `min`/`max`/`step` through to the numeric
8
+ editors (objectui#2572 live dogfood find). Both `DetailSection` and
9
+ `HeaderHighlight` copy an explicit whitelist of objectSchema keys into the
10
+ enriched field they hand `InlineFieldInput`; the numeric range/step
11
+ constraints were missing from that list, so a currency field declaring
12
+ `min: 0` rendered a number input with no range affordance. Adds a live e2e
13
+ spec (`e2e/live/inline-edit-polish-2572.spec.ts`) driving the whole #2572
14
+ polish set against the real showcase stack.
15
+ - @object-ui/types@15.0.0
16
+ - @object-ui/core@15.0.0
17
+ - @object-ui/i18n@15.0.0
18
+ - @object-ui/react@15.0.0
19
+ - @object-ui/components@15.0.0
20
+ - @object-ui/fields@15.0.0
21
+ - @object-ui/permissions@15.0.0
22
+
23
+ ## 14.1.0
24
+
25
+ ### Minor Changes
26
+
27
+ - 471c5d3: feat(detail): editable record highlights on the shared inline-edit draft (objectui#2407 P2)
28
+
29
+ The highlights strip is now editable in place and shares ONE draft + ONE atomic
30
+ Save with the details body (building on the P1 `InlineEditContext` / `#2529`
31
+ `InlineFieldInput`).
32
+
33
+ - **`HeaderHighlight`** consumes `useInlineEdit()`: hovering a highlight shows a
34
+ pencil and double-click enters the shared record edit session; each editable
35
+ highlight renders the same `<InlineFieldInput>` the body uses (value =
36
+ `draft[name] ?? data[name]`, write via `setField`). Computed
37
+ (`formula`/`summary`/`rollup`/`auto_number`), `readonly`, and system fields
38
+ expose no editor. Empty highlights are kept while editing so they can be
39
+ filled. Compact-layout UX: an actively-edited column widens and renders the
40
+ editor full-width (Salesforce-style expand-on-edit).
41
+ - **`RecordDetailView`** (app-shell) hosts ONE `<InlineEditProvider>` (with the
42
+ object-lifecycle `canEdit` gate) spanning both `record:highlights` and
43
+ `record:details`, plus the single record-level `<InlineEditSaveBar>` — so a
44
+ highlight edit and a body edit commit together in ONE
45
+ `update(obj, id, draft, { ifMatch })`.
46
+ - **`record:details`** drops its P1-local provider/save bar (it would otherwise
47
+ split the draft from the highlights) and just consumes the shared context;
48
+ **`record:highlights`** threads the DataSource through for lookup/user editors.
49
+
50
+ Guardrails preserved: computed/readonly/system highlights non-editable; `canEdit`
51
+ gate; OCC (`ifMatch` + `ConcurrentUpdateDialog`); only user-edited keys are sent.
52
+
53
+ - 579b24d: feat(fields+form+detail): file/image uploads in inline line-item grids (#2360)
54
+
55
+ `Field.file` in a master-detail inline grid previously degraded to a plain text
56
+ input (no `input[type=file]` on the page → no way to upload from the grid), and
57
+ auto-derived subform / related-list columns silently dropped file fields.
58
+
59
+ - **fields**: new `FileCell` — a compact upload control for grid cells (upload
60
+ button + removable chips, image thumbnails), sharing the `UploadProvider`
61
+ pipeline with the full-size `FileField` via an extracted `useFileUploads`
62
+ hook. `GridField` supports `type: 'file'` columns (with `accept` /
63
+ `multiple`), renders file names in list/readonly modes, and no longer falls
64
+ back to a text `<Input>` for file columns.
65
+ - **plugin-form**: `deriveColumns` / `hydrateColumns` no longer exclude
66
+ `file`/`image`/`avatar` fields — they map to `file` columns and carry the
67
+ field's `multiple` + `accept` (image fields default to `['image/*']`).
68
+ - **plugin-detail**: auto-derived related-list columns no longer skip
69
+ `file`/`image` fields — they render through the existing FileCellRenderer /
70
+ ImageCellRenderer (file-name chip / thumbnail).
71
+
72
+ - 5b52624: feat(detail): record-level inline edit — shared `InlineEditContext` + one atomic Save (objectui#2407 P1)
73
+
74
+ Lift the inline-edit session out of `DetailView`'s private state into a
75
+ record-level, shared context so a record page's surfaces can share ONE draft and
76
+ commit it in ONE atomic, cross-field-validated write (replacing the per-field
77
+ save loop).
78
+
79
+ - **`InlineEditContext` / `InlineEditProvider` / `useInlineEdit`** (@object-ui/react)
80
+ — pure UI state (`editing`, `canEdit`, `draft`, `autoFocusField`, `saving`,
81
+ `error` + `enter` / `setField` / `cancel` / `reset`). A _separate_ context from
82
+ `RecordContext` (mirrors `HighlightFieldsContext`) so per-keystroke draft churn
83
+ doesn't re-render other `record:*` consumers.
84
+ - **`<InlineEditSaveBar>`** (@object-ui/plugin-detail) — the record-level sticky
85
+ Save/Cancel bar. Commits the whole draft in ONE
86
+ `dataSource.update(obj, id, draft, { ifMatch: data.updated_at })` → `refresh()`;
87
+ a `409 CONCURRENT_UPDATE` reuses `<ConcurrentUpdateDialog>` (reload / overwrite).
88
+ A callback mode (`onFieldSave`) preserves the drawer's per-field persistence
89
+ contract with plugin-gantt/calendar/kanban.
90
+ - **`DetailView`** now consumes `useInlineEdit()` instead of owning inline-edit
91
+ state; its header/inline Save-Cancel bars and per-field batch-save are removed
92
+ (the approval-lock badge stays). Rendered without a provider it is simply
93
+ read-only.
94
+ - **`record:details`** and **`RecordDetailDrawer`** each wrap their `DetailView`
95
+ in an `<InlineEditProvider>` + `<InlineEditSaveBar>`. The object-lifecycle /
96
+ permission gate flows through `canEdit`; computed / readonly / system fields
97
+ and the OCC path are unchanged.
98
+
99
+ Guardrails preserved: computed (`formula`/`summary`/`rollup`/`auto_number`) +
100
+ `readonly` + system fields expose no editor; `canEdit` gate; OCC (`ifMatch` +
101
+ `ConcurrentUpdateDialog`); the atomic partial update carries only user-edited
102
+ keys (never computed/read-only). Editable highlights ride on top of this in P2.
103
+
104
+ ### Patch Changes
105
+
106
+ - 2efa9fd: Detail-page UX follow-ups from the ADR-0085 PR4 real-backend browser pass (framework#2548):
107
+
108
+ - **Highlight strip no longer repeats the record title.** A declared
109
+ `highlightFields` list containing the title field rendered it as the first
110
+ chip — truncated — directly under the identical page H1. `deriveHighlightFields`
111
+ now resolves the title (`primaryField` / `nameField` / deprecated
112
+ `displayNameField`, else the conventional display-field names) via the new
113
+ exported `resolveTitleField` and filters it from declared lists before the
114
+ 4-chip cap, matching what the heuristic branch always did. app-shell's
115
+ `RecordDetailView` synthParts (which pre-computes the list and bypasses the
116
+ derivation) applies the same filter.
117
+ - **Per-field currency reaches the renderers.** The spec channel
118
+ (`currencyConfig.defaultCurrency`) was dropped by the highlight-strip and
119
+ detail-section field enrichment, so a spec-authored currency field could
120
+ never show its symbol ("25,000,000" instead of "$25,000,000");
121
+ `resolveFieldCurrency` reads it second after the designer-only bare
122
+ `currency` key.
123
+ - **app-shell approvals fetches send the Bearer token.** The header badge
124
+ poll, home-inbox count, and record-page approvals panel were cookie-only
125
+ (new shared `bearerAuthHeaders()` util) — same split-origin failure mode as
126
+ the console `approvalsApi` fix below.
127
+ - **`fieldGroups[].icon` / `description` reach detail pages.** The shared
128
+ derivation (ADR-0085 §5) already passed them through; the detail synth
129
+ dropped them. Sections now carry both, and `DetailSection` renders a real
130
+ Lucide icon for identifier-shaped names (emoji/text values keep the
131
+ historical text rendering).
132
+ - **Record meta footer stops dangling without an actor.** Seeded/system rows
133
+ with `created_by: null` rendered "Created by · 10m ago"; the footer now
134
+ falls back to actor-less labels ("Created / Updated"), with new i18n keys in
135
+ all six locales (and the zh `createdBy`/`updatedBy` mistranslation fixed:
136
+ 创建人/更新人, not 创建于/更新于).
137
+ - **Select badges ellipsize instead of clipping mid-glyph.** In bounded
138
+ containers (highlight-strip columns, grid cells) an overlong option label
139
+ used to be cut at the container edge ("Technolog…"); badges now shrink with
140
+ an inner truncate and expose the full label as a hover title. The highlight
141
+ strip's hover title also prefers the option label over the raw stored value.
142
+
143
+ Console app (unversioned): `approvalsApi` now sends the stored Bearer token
144
+ like every other console call — cookie-only auth silently lost the approvals
145
+ surface on split-origin deployments where the SameSite cookie doesn't flow.
146
+
147
+ - f9a7907: refactor(plugin-detail): extract `<InlineFieldInput>` from `DetailSection`
148
+
149
+ Lift the inline-edit input branch out of `DetailSection` into a standalone,
150
+ reusable `<InlineFieldInput>` component (objectui#2407, step 0 — the
151
+ behavior-preserving refactor that precedes the record-level `InlineEditContext`
152
+ and editable-highlights work).
153
+
154
+ Behavior is unchanged: `<InlineFieldInput>` renders the exact same type-aware
155
+ editors the detail body handled inline — `SelectField`, `BooleanField`,
156
+ `LookupField`, `UserField`, `CapabilityMultiSelectField`, the
157
+ `permission-facet-link` read-only facet, and the plain number/date/text input
158
+ (with ISO-date coercion and `$expand`-ed-reference safety so an object value
159
+ never leaks `"[object Object]"`). `DetailSection` now delegates to it and keeps
160
+ the field-editability gate (computed / `readonly` / system-field / object
161
+ lifecycle) exactly as before. The `extractLookupId` helper and the
162
+ `TEXTUAL_REF_FALLBACK_TYPES` set move alongside the component.
163
+
164
+ This lets any record-level surface (the details body **and** the highlights
165
+ strip) share one editor, shrinking the surface of the follow-up
166
+ editable-highlights change. Covered by the existing `DetailSection` inline-edit
167
+ suites plus a new `InlineFieldInput` parity test.
168
+
169
+ - 4afb251: Record-level inline edit polish (objectui#2572, follow-up to #2407) — the five
170
+ rough edges from the live showcase verification pass:
171
+
172
+ - **Expanded reference values pass through to the picker.** `InlineFieldInput`
173
+ no longer collapses an `$expand`-ed record object to a bare id before
174
+ handing it to `LookupField` / `UserField` — the picker resolves the display
175
+ name it already carries instead of re-fetching the referenced record via
176
+ `findOne` (or sticking on the placeholder when it can't). `LookupField`
177
+ still hands its Level-2 pickers (PeoplePicker / RecordPickerDialog) bare
178
+ ids, collapsed via the existing `normalizeId`.
179
+ - **Approval-lock preflight.** The record page now re-reads the approval
180
+ state whenever the record is invalidated (a save can _trigger_ an approval
181
+ flow that locks the record), derives one `approvalLocked` signal
182
+ (`approval_status` pending/in_approval OR an open pending request), gates
183
+ the inline-edit session's `canEdit` with it — hiding the pencil affordances
184
+ and no-op'ing `enter()` on a locked record — and drives the save bar's
185
+ `locked`/`lockedHint` so users can't type into a draft that Save would
186
+ reject with `RECORD_LOCKED`.
187
+ - **Numeric field types edit with the real numeric widgets.** `number` /
188
+ `currency` / `percent` route to `NumberField` / `CurrencyField` /
189
+ `PercentField` (the same widgets the form uses) instead of a free-text
190
+ input: numeric keyboard, symbol adornment, fraction↔percent display
191
+ conversion, and numbers (not strings) into the draft. `NumberField` and
192
+ `CurrencyField` now surface metadata `min`/`max` on the input, `NumberField`
193
+ honors an explicit `step` and steps by 1 for `scale: 0` (previously fell
194
+ back to `any`).
195
+ - **Header Edit CTA stands down during an inline session.** The synthesized
196
+ `sys_edit` action carries `disableDuringInlineEdit`, and the `page:header`
197
+ renderer greys such actions out while `InlineEditContext.editing` — the
198
+ classic form-edit surface can no longer be stacked on top of a live inline
199
+ draft.
200
+ - **Keyboard shortcuts for the shared edit session.** `InlineEditSaveBar`
201
+ binds **Esc → cancel** (deferring to any open Radix layer — popover /
202
+ select / dialog — which owns Escape for "close") and **Cmd/Ctrl+Enter →
203
+ save**, both respecting `saving`/`locked`.
204
+
205
+ - 2712fc1: fix(fields+detail): resolve the pre-existing rules-of-hooks violations in the cell renderers
206
+
207
+ - `CurrencyCellRenderer` / `EmailCellRenderer` / `PhoneCellRenderer` called
208
+ hooks (`useLocalization`, `useFieldLabel`, `useState`) **after** their
209
+ empty-value early return — a value flipping between null and set changed
210
+ the hook count between renders (latent "Rendered more hooks than during
211
+ the previous render" crash). Hooks now run unconditionally before the
212
+ early return.
213
+ - `useFieldLabel` wrapped `useObjectTranslation()` in try/catch; a throw
214
+ after other hooks ran would desync hook order. The underlying hook is
215
+ provider-safe (optional context + global i18n fallback), so the guard is
216
+ removed.
217
+ - `ReferenceCellRenderer` no longer constructs JSX inside try/catch (the
218
+ try can't catch render errors anyway) — the display string is computed in
219
+ the try, rendered outside.
220
+ - `RecordMetaFooter`'s UserRef renders the registry cell renderer via
221
+ `React.createElement` instead of a locally-assigned capitalized JSX tag
222
+ (flagged as component-creation-during-render; the registry reference is
223
+ stable).
224
+
225
+ No behavior change intended; eslint react-hooks errors on these files drop
226
+ to zero.
227
+
228
+ - f0f10f5: feat(kanban): default lane field honours the ADR-0085 `stageField` role
229
+
230
+ Kanban views without an explicit `groupByField`/`groupField` hard-coded their
231
+ lane field to the literal `'status'` (in both app-shell's ObjectView options
232
+ and plugin-list's ListView fallback) — ignoring the object's declared
233
+ lifecycle and even inventing a field the object doesn't have. The default now
234
+ resolves through the shared `stageField` detector:
235
+
236
+ 1. explicit view config (unchanged, always wins);
237
+ 2. the object's `stageField` semantic role;
238
+ 3. `stageField: false` → **no default lanes** (the status-shaped field is
239
+ declared non-linear; the board renders its empty state until the view
240
+ picks a lane field explicitly);
241
+ 4. else the shared name/type heuristic (status / stage / state / phase by
242
+ name, then status/stage by type) — never a nonexistent field.
243
+
244
+ `detectStatusField` moved from `@object-ui/plugin-detail` to
245
+ `@object-ui/types` (new export, with the `StatusFieldSource` input type) so
246
+ plugin-list and app-shell share the exact semantics; plugin-detail re-exports
247
+ it unchanged.
248
+
249
+ Also fixes ListView's pre-existing rules-of-hooks error while touching the
250
+ file: `useListFieldLabel` wrapped `useObjectLabel()` in try/catch (hook-order
251
+ desync risk; the hook is provider-safe) — same fix as objectui#2595's
252
+ `useFieldLabel`.
253
+
254
+ Behavior change is limited to kanban views with no explicit lane field on
255
+ objects that either declare `stageField` (now honoured), declare
256
+ `stageField: false` (now suppressed), or have no status-shaped field at all
257
+ (previously grouped by a nonexistent `status` into one "undefined" lane; now
258
+ an honest empty state). Objects with a real `status` field — the common case —
259
+ are unchanged.
260
+
261
+ - Updated dependencies [82441e4]
262
+ - Updated dependencies [2efa9fd]
263
+ - Updated dependencies [e628d1f]
264
+ - Updated dependencies [23d65c3]
265
+ - @object-ui/i18n@14.1.0
266
+
3
267
  ## 14.0.0
4
268
 
5
269
  ### Patch Changes
package/README.md CHANGED
@@ -192,6 +192,33 @@ Tab navigation for organizing content into different views.
192
192
 
193
193
  Displays related records in list, grid, or table format.
194
194
 
195
+ The `record:related_list` renderer is automatically gated on the current
196
+ user's object-level `read` permission for the child object: when the
197
+ permission system (`@object-ui/permissions`) is loaded and denies read,
198
+ the whole section renders nothing — no header, no empty grid, no "New"
199
+ button that would be rejected server-side. With no `PermissionProvider`
200
+ mounted (Studio designer, standalone embeds) the gate stays open.
201
+
202
+ ### InlineEditSaveBar & InlineFieldInput
203
+
204
+ The record-level inline-edit session (#2407): double-clicking a field (or its
205
+ hover pencil) in the highlights strip or details body stages edits into ONE
206
+ shared draft (`InlineEditProvider` from `@object-ui/react`), committed by
207
+ `<InlineEditSaveBar>` as a single atomic OCC-guarded update. Polish shipped in
208
+ #2572:
209
+
210
+ - **Editors**: `InlineFieldInput` routes every field type to the same widget
211
+ the form uses — including `number` / `currency` / `percent` (numeric
212
+ keyboard, `min`/`max`/`step` from metadata, fraction↔percent conversion) and
213
+ reference pickers, which receive `$expand`-ed record objects as-is so the
214
+ display name renders without a hydration re-fetch.
215
+ - **Keyboard shortcuts**: while the session is active, **Esc** cancels (open
216
+ popovers/dialogs keep owning Escape for "close") and **Cmd/Ctrl+Enter**
217
+ saves; both respect the in-flight `saving` and `locked` states.
218
+ - **Approval lock**: hosts pass `locked` / `lockedHint` to the save bar and
219
+ gate `InlineEditProvider.canEdit` when the record is approval-locked, so a
220
+ locked record hides its edit affordances instead of rejecting at Save.
221
+
195
222
  <!-- release-metadata:v3.3.0 -->
196
223
 
197
224
  ## Compatibility
@@ -1 +1 @@
1
- {"version":3,"file":"DetailSection.d.ts","sourceRoot":"","sources":["../src/DetailSection.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAkC,MAAM,kBAAkB,CAAC;AAOnH;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBxF;AAyBD,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,6FAA6F;IAC7F,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,oEAAoE;IACpE,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoiBtD,CAAC"}
1
+ {"version":3,"file":"DetailSection.d.ts","sourceRoot":"","sources":["../src/DetailSection.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqB/B,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAkC,MAAM,kBAAkB,CAAC;AAsBnH;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAmBxF;AAED,MAAM,WAAW,oBAAoB;IACnC,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,qBAAqB,CAAC;IAC/B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8DAA8D;IAC9D,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gEAAgE;IAChE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,oEAAoE;IACpE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,6FAA6F;IAC7F,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,oEAAoE;IACpE,aAAa,CAAC,EAAE,oBAAoB,CAAC;CACtC;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsctD,CAAC"}
@@ -14,10 +14,13 @@ export interface DetailViewProps {
14
14
  onEdit?: () => void;
15
15
  onDelete?: () => void;
16
16
  onBack?: () => void;
17
- /** Enable inline editing toggle for detail fields */
17
+ /**
18
+ * Opt into inline editing. When true AND an `<InlineEditProvider>` is present
19
+ * (with `canEdit`), fields surface the double-click / hover-pencil affordance
20
+ * and edits stage into the shared draft (objectui#2407 P1). The Save/Cancel
21
+ * bar + atomic persistence live in `<InlineEditSaveBar>`, rendered by the host.
22
+ */
18
23
  inlineEdit?: boolean;
19
- /** Callback when a field value is saved inline */
20
- onFieldSave?: (field: string, value: any, record: any) => void | Promise<void>;
21
24
  /**
22
25
  * Optional discussion content rendered as a dedicated "Discussion" tab when
23
26
  * autoTabs is enabled. Lets the host page mount a rich chatter panel without
@@ -1 +1 @@
1
- {"version":3,"file":"DetailView.d.ts","sourceRoot":"","sources":["../src/DetailView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAA4B,MAAM,kBAAkB,CAAC;AAkE/F,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,qDAAqD;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E;;;;OAIG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA41ChD,CAAC"}
1
+ {"version":3,"file":"DetailView.d.ts","sourceRoot":"","sources":["../src/DetailView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAwC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAA4B,MAAM,kBAAkB,CAAC;AAsE/F,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC;;;;OAIG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;OAEG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAmsChD,CAAC"}
@@ -15,6 +15,8 @@ export interface HeaderHighlightProps {
15
15
  objectName?: string;
16
16
  /** Object schema for field metadata enrichment */
17
17
  objectSchema?: any;
18
+ /** DataSource used by reference (lookup / user) editors during inline edit */
19
+ dataSource?: any;
18
20
  }
19
21
  export declare const HeaderHighlight: React.FC<HeaderHighlightProps>;
20
22
  //# sourceMappingURL=HeaderHighlight.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeaderHighlight.d.ts","sourceRoot":"","sources":["../src/HeaderHighlight.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoI1D,CAAC"}
1
+ {"version":3,"file":"HeaderHighlight.d.ts","sourceRoot":"","sources":["../src/HeaderHighlight.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAQvD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,GAAG,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoO1D,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ *
8
+ * InlineEditSaveBar — the record-level sticky Save/Cancel bar for inline edit
9
+ * (objectui#2407 P1). Reads the shared `InlineEditContext` (draft / editing /
10
+ * saving / error) and commits the WHOLE draft in ONE atomic write, so
11
+ * cross-field validation runs against a consistent record instead of the old
12
+ * per-field save-on-blur loop.
13
+ *
14
+ * Two persistence modes:
15
+ * - **DataSource mode** (record page): one `dataSource.update(obj, id, draft,
16
+ * { ifMatch: data.updated_at })` → `refresh()`. A `409 CONCURRENT_UPDATE`
17
+ * opens `<ConcurrentUpdateDialog>` (reload / overwrite), reusing the OCC UX
18
+ * that previously lived in `record:details`.
19
+ * - **Callback mode** (standalone drawer): loops a caller-supplied
20
+ * `onFieldSave(field, value)` over the draft, preserving the drawer's
21
+ * existing per-field persistence contract with plugin-gantt/calendar/kanban.
22
+ *
23
+ * While the session is active the bar also owns the record-level keyboard
24
+ * shortcuts (objectui#2572): **Esc** cancels (when no popover/dialog is open)
25
+ * and **Cmd/Ctrl+Enter** saves — both respecting `saving`/`locked`.
26
+ *
27
+ * The bar renders nothing unless the record is actively being edited.
28
+ */
29
+ import * as React from 'react';
30
+ export interface InlineEditSaveBarProps {
31
+ /** DataSource for the atomic-update path (record page). */
32
+ dataSource?: any;
33
+ /** Object machine name for the atomic-update path. */
34
+ objectName?: string;
35
+ /** Record id for the atomic-update path. */
36
+ recordId?: string | number | null;
37
+ /** Current server record — supplies `updated_at` for the OCC `ifMatch` token. */
38
+ data?: any;
39
+ /** Re-fetch the record after a successful save / reload. */
40
+ refresh?: () => void | Promise<void>;
41
+ /** Map a field machine name to a user-facing label (for the conflict dialog). */
42
+ fieldLabelFor?: (name: string) => string | undefined;
43
+ /**
44
+ * Callback-persistence mode (drawer): when provided, the save loops this
45
+ * per-field callback over the draft instead of issuing a DataSource update.
46
+ * Takes precedence over the DataSource path.
47
+ */
48
+ onFieldSave?: (field: string, value: any) => void | Promise<void>;
49
+ /** When true, disables Save and shows a lock hint (e.g. approval-locked). */
50
+ locked?: boolean;
51
+ /** Tooltip/label explaining why the record is locked. */
52
+ lockedHint?: string;
53
+ className?: string;
54
+ }
55
+ export declare const InlineEditSaveBar: React.FC<InlineEditSaveBarProps>;
56
+ export default InlineEditSaveBar;
57
+ //# sourceMappingURL=InlineEditSaveBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineEditSaveBar.d.ts","sourceRoot":"","sources":["../src/InlineEditSaveBar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,MAAM,WAAW,sBAAsB;IACrC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAClC,iFAAiF;IACjF,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,iFAAiF;IACjF,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACrD;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmCD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAqO9D,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * ObjectUI
3
+ * Copyright (c) 2024-present ObjectStack Inc.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import * as React from 'react';
9
+ /**
10
+ * Field types that carry a `reference_to` for relational metadata but are NOT
11
+ * edited via the lookup picker (they have their own dedicated inputs/renderers).
12
+ * Used so the inline-edit branch doesn't hijack them into a record picker.
13
+ *
14
+ * Exported because `DetailSection`'s per-field editability gate keys off the
15
+ * same set (a computed field is never editable), so the two must not drift.
16
+ */
17
+ export declare const TEXTUAL_REF_FALLBACK_TYPES: Set<string>;
18
+ /**
19
+ * Extract the id a reference widget expects from a value that may already be
20
+ * an `$expand`-ed record object (`{ id, name, ... }`), an array of those, or a
21
+ * bare id. Mirrors the display logic in `LookupCellRenderer` so edit-mode and
22
+ * read-mode agree on which id a relationship points at.
23
+ */
24
+ export declare function extractLookupId(value: unknown): unknown;
25
+ export interface InlineFieldInputProps {
26
+ /**
27
+ * Enriched field metadata — `type` plus any objectSchema enrichment (options,
28
+ * currency, precision, format, reference_to, widget…). The caller owns
29
+ * enrichment so read-mode and edit-mode agree on the same resolved field
30
+ * shape. Kept as a loose bag (matching the widgets' `field` props) since the
31
+ * exact key set varies by field type.
32
+ */
33
+ field: Record<string, any>;
34
+ /** Current field value (may be an `$expand`-ed record object for references). */
35
+ value: any;
36
+ /** Called with the next value whenever the user edits the field. */
37
+ onChange: (value: any) => void;
38
+ /** DataSource used by reference (lookup / master_detail / user) pickers. */
39
+ dataSource?: any;
40
+ /** Auto-focus the underlying input on mount (wired to the entered field). */
41
+ autoFocus?: boolean;
42
+ }
43
+ /**
44
+ * The single inline-edit input for a record field, extracted from
45
+ * `DetailSection` so any record-level surface — the details body AND the
46
+ * highlights strip (objectui#2407) — renders an identical editor. Covers every
47
+ * widget the detail body handles: `SelectField`, `BooleanField`, `LookupField`,
48
+ * `UserField`, `CapabilityMultiSelectField` (#2403), the `permission-facet-link`
49
+ * read-only facet (#2403), the numeric widgets (`NumberField` /
50
+ * `CurrencyField` / `PercentField`, objectui#2572), and the plain date/text
51
+ * input (with ISO date coercion + object-value guarding so an unexpanded
52
+ * reference never leaks "[object Object]").
53
+ *
54
+ * Editability GATING (computed types, `readonly`, system fields, object
55
+ * lifecycle) stays with the host — this component only renders the editor once
56
+ * the host has decided the field is editable.
57
+ */
58
+ export declare const InlineFieldInput: React.FC<InlineFieldInputProps>;
59
+ //# sourceMappingURL=InlineFieldInput.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InlineFieldInput.d.ts","sourceRoot":"","sources":["../src/InlineFieldInput.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,aAA2D,CAAC;AAEnG;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQvD;AAED,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,iFAAiF;IACjF,KAAK,EAAE,GAAG,CAAC;IACX,oEAAoE;IACpE,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,4EAA4E;IAC5E,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgI5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordDetailDrawer.d.ts","sourceRoot":"","sources":["../src/RecordDetailDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAuBnD,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAA0B,EAC1B,OAAW,EACX,YAAoC,EACpC,WAAW,EACX,QAAQ,EACR,SAAgB,EAChB,YAAY,GACb,EAAE,uBAAuB,qBAsNzB;AAED,eAAe,kBAAkB,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAQjG"}
1
+ {"version":3,"file":"RecordDetailDrawer.d.ts","sourceRoot":"","sources":["../src/RecordDetailDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyBnD,MAAM,WAAW,uBAAuB;IACtC,4CAA4C;IAC5C,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,IAAI,CAAC;IACvD;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAKD,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,EACV,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAA0B,EAC1B,OAAW,EACX,YAAoC,EACpC,WAAW,EACX,QAAQ,EACR,SAAgB,EAChB,YAAY,GACb,EAAE,uBAAuB,qBAkOzB;AAED,eAAe,kBAAkB,CAAC;AAElC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAQjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"RecordMetaFooter.d.ts","sourceRoot":"","sources":["../src/RecordMetaFooter.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,oFAAoF;IACpF,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+GD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA0D5D,CAAC"}
1
+ {"version":3,"file":"RecordMetaFooter.d.ts","sourceRoot":"","sources":["../src/RecordMetaFooter.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAC7C,oFAAoF;IACpF,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsHD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA4D5D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RelatedList.d.ts","sourceRoot":"","sources":["../src/RelatedList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RelatedList.d.ts","sourceRoot":"","sources":["../src/RelatedList.tsx"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,10 @@ export { ConcurrentUpdateDialog, isConcurrentUpdateError, } from './ConcurrentUp
20
20
  export type { ConcurrentUpdateConflict, ConcurrentUpdateDialogProps, } from './ConcurrentUpdateDialog';
21
21
  export { SectionGroup } from './SectionGroup';
22
22
  export { HeaderHighlight } from './HeaderHighlight';
23
+ export { InlineFieldInput, extractLookupId, TEXTUAL_REF_FALLBACK_TYPES } from './InlineFieldInput';
24
+ export type { InlineFieldInputProps } from './InlineFieldInput';
25
+ export { InlineEditSaveBar } from './InlineEditSaveBar';
26
+ export type { InlineEditSaveBarProps } from './InlineEditSaveBar';
23
27
  export { inferDetailColumns, isWideFieldType, applyAutoSpan, applyDetailAutoLayout } from './autoLayout';
24
28
  export { useDetailTranslation, DETAIL_DEFAULT_TRANSLATIONS, createSafeTranslationHook } from './useDetailTranslation';
25
29
  export { RecordComments } from './RecordComments';
@@ -68,6 +72,6 @@ export type { MentionAutocompleteProps, MentionSuggestionItem } from './MentionA
68
72
  export type { SubscriptionToggleProps } from './SubscriptionToggle';
69
73
  export type { ReactionPickerProps } from './ReactionPicker';
70
74
  export type { ThreadedRepliesProps } from './ThreadedReplies';
71
- export { buildDefaultPageSchema, buildDefaultHeader, buildDefaultActions, buildDefaultHighlights, buildDefaultDetails, buildDefaultTabs, buildDefaultDiscussion, detectStatusField, deriveStages, deriveHighlightFields, deriveFieldGroupDetailSections, resolveDetailSections, } from './synth/buildDefaultPageSchema';
75
+ export { buildDefaultPageSchema, buildDefaultHeader, buildDefaultActions, buildDefaultHighlights, buildDefaultDetails, buildDefaultTabs, buildDefaultDiscussion, detectStatusField, deriveStages, deriveHighlightFields, deriveFieldGroupDetailSections, resolveDetailSections, resolveTitleField, } from './synth/buildDefaultPageSchema';
72
76
  export type { ObjectDefLike, ObjectFieldLike, BuildPageOptions, } from './synth/buildDefaultPageSchema';
73
77
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}