@object-ui/react 5.0.1 → 5.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,78 @@
1
1
  # @object-ui/react
2
2
 
3
+ ## 5.1.1
4
+
5
+ ### Patch Changes
6
+
7
+ - @object-ui/types@5.1.1
8
+ - @object-ui/core@5.1.1
9
+ - @object-ui/i18n@5.1.1
10
+ - @object-ui/data-objectstack@5.1.1
11
+
12
+ ## 5.1.0
13
+
14
+ ### Patch Changes
15
+
16
+ - bd8447d: Three platform-wide detail polish items.
17
+
18
+ **Tighter page rhythm**
19
+ - Outer `PageRenderer` padding `p-4 md:p-6 lg:p-8` → `p-3 md:p-4 lg:p-6`
20
+ and outer body wrap `space-y-8` → `space-y-6` so list / detail / home
21
+ pages share the same edge rhythm. Cuts ~16px of edge slack on lg.
22
+
23
+ **Highlights KPI treatment**
24
+ - `HeaderHighlight` now renders numeric / currency / percent / decimal
25
+ values as KPI numbers (`text-xl md:text-2xl font-semibold tabular-nums`)
26
+ instead of the uniform `text-sm font-semibold`, so amount / probability
27
+ / count fields read as headline stats — Salesforce-style key facts.
28
+
29
+ **Discussion footer upgrade**
30
+ - `RecordActivityTimeline` now uses `RichTextCommentInput` (bold / italic /
31
+ list / code, `@`-mention autocomplete, preview toggle, Send) instead of
32
+ a bare `<textarea>`.
33
+ - `DiscussionContext` gains an optional `mentionSuggestions` array that
34
+ hosts can wire (e.g. team member directory). Falls back to free-text
35
+ `@mention` when omitted.
36
+ - `RecordChatterPanel` threads `mentionSuggestions` through both inline
37
+ and sidebar positions.
38
+
39
+ - d51a577: feat(platform): Discussion attachments + @mention directory + Reference Rail aside
40
+ - **Discussion attachments** — `RichTextCommentInput` now accepts an `extraSlot`
41
+ and a `canSubmitEmpty` flag so hosts can mount the existing
42
+ `CommentAttachment` composer beneath the editor without forking the toolbar.
43
+ `RecordActivityTimeline` plumbs the attachments through
44
+ `DiscussionContext.onUploadAttachments` and submits attachment-only comments.
45
+ - **@mention directory** — `DiscussionContext` gains a `mentionSuggestions`
46
+ field; `RecordDetailView` populates it from the host `sys_user` collection so
47
+ `@` autocomplete in the composer now resolves against real users.
48
+ - **Reference Rail** — New `record:reference_rail` renderer + a dedicated
49
+ `aside` region emitted by `buildDefaultPageSchema` whenever a record has
50
+ ≥ 2 related lists. The rail surfaces a Salesforce/HubSpot-style snapshot
51
+ of related collections (count badge + top 3 records) on `xl+` viewports.
52
+ - **Layout** — `PageRenderer`'s structured-layout `<aside>` wrappers now honor
53
+ `aside.className`, letting schemas attach responsive utilities like
54
+ `hidden xl:flex` to the rail region.
55
+
56
+ - Updated dependencies [1976691]
57
+ - Updated dependencies [cf30cc2]
58
+ - Updated dependencies [5b80cfd]
59
+ - Updated dependencies [49b1760]
60
+ - Updated dependencies [c0b236f]
61
+ - @object-ui/i18n@5.1.0
62
+ - @object-ui/types@5.1.0
63
+ - @object-ui/core@5.1.0
64
+ - @object-ui/data-objectstack@5.1.0
65
+
66
+ ## 5.0.2
67
+
68
+ ### Patch Changes
69
+
70
+ - Updated dependencies [cab6a93]
71
+ - @object-ui/i18n@5.0.2
72
+ - @object-ui/types@5.0.2
73
+ - @object-ui/core@5.0.2
74
+ - @object-ui/data-objectstack@5.0.2
75
+
3
76
  ## 5.0.1
4
77
 
5
78
  ### Patch Changes
@@ -22,11 +22,32 @@ export interface DiscussionFeedItem {
22
22
  type?: string;
23
23
  [k: string]: any;
24
24
  }
25
+ export interface DiscussionMentionSuggestion {
26
+ id: string;
27
+ label: string;
28
+ avatarUrl?: string;
29
+ }
30
+ export interface DiscussionAttachment {
31
+ id: string;
32
+ name: string;
33
+ size: number;
34
+ type: string;
35
+ url?: string;
36
+ thumbnailUrl?: string;
37
+ }
25
38
  export interface DiscussionContextValue {
26
39
  items: DiscussionFeedItem[];
27
- onAddComment?: (text: string, attachments?: any[]) => void | Promise<void>;
40
+ onAddComment?: (text: string, attachments?: DiscussionAttachment[]) => void | Promise<void>;
28
41
  onAddReply?: (parentId: string, text: string) => void | Promise<void>;
29
42
  onToggleReaction?: (itemId: string, reaction: string) => void | Promise<void>;
43
+ /** Optional list of users (or any mentionable entities) the comment
44
+ * input can suggest after the user types `@`. When omitted the input
45
+ * falls back to free-text @-mentions without autocompletion. */
46
+ mentionSuggestions?: DiscussionMentionSuggestion[];
47
+ /** Optional uploader. When provided, the comment composer renders a
48
+ * drag-and-drop attachment panel; returned attachments are passed
49
+ * alongside the comment text to `onAddComment`. */
50
+ onUploadAttachments?: (files: FileList) => Promise<DiscussionAttachment[]>;
30
51
  loading?: boolean;
31
52
  error?: Error | null;
32
53
  }
@@ -24,6 +24,8 @@ export const DiscussionContextProvider = ({ children, ...value }) => {
24
24
  value.onAddComment,
25
25
  value.onAddReply,
26
26
  value.onToggleReaction,
27
+ value.mentionSuggestions,
28
+ value.onUploadAttachments,
27
29
  value.loading,
28
30
  value.error,
29
31
  ]);
@@ -51,6 +51,18 @@ export interface RecordContextValue<TData = any, TObjectSchema = any> {
51
51
  * to opt out entirely (e.g. embedded previews).
52
52
  */
53
53
  headerSystemActions?: any[];
54
+ /**
55
+ * Controlled favourite state for the record-header star (rendered by
56
+ * `RecordTitleChip` via `PageHeaderRenderer`). When the host provides
57
+ * this, the chip mirrors it instead of managing its own local state.
58
+ */
59
+ isFavorite?: boolean;
60
+ /**
61
+ * Called when the user toggles the record-header favourite star. Hosts
62
+ * persist the change (e.g. through `useFavorites`) and update
63
+ * `isFavorite` accordingly.
64
+ */
65
+ onToggleFavorite?: () => void;
54
66
  /**
55
67
  * When true, the record is rendered inside a host overlay (drawer,
56
68
  * modal, split-pane preview) rather than as a standalone route. Header
@@ -101,6 +101,8 @@ export const RecordContextProvider = ({ children, ...value }) => {
101
101
  value.refresh,
102
102
  value.embedded,
103
103
  value.headerSystemActions,
104
+ value.isFavorite,
105
+ value.onToggleFavorite,
104
106
  ]);
105
107
  return _jsx(RecordContext.Provider, { value: memo, children: children });
106
108
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@object-ui/react",
3
- "version": "5.0.1",
3
+ "version": "5.1.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "React bindings and SchemaRenderer component for Object UI",
@@ -26,10 +26,10 @@
26
26
  "dependencies": {
27
27
  "@objectstack/spec": "^4.0.5",
28
28
  "react-hook-form": "^7.76.0",
29
- "@object-ui/data-objectstack": "5.0.1",
30
- "@object-ui/core": "5.0.1",
31
- "@object-ui/i18n": "5.0.1",
32
- "@object-ui/types": "5.0.1"
29
+ "@object-ui/core": "5.1.1",
30
+ "@object-ui/data-objectstack": "5.1.1",
31
+ "@object-ui/i18n": "5.1.1",
32
+ "@object-ui/types": "5.1.1"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "react": "^18.0.0 || ^19.0.0",