@object-ui/components 13.1.0 → 14.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,118 @@
1
1
  # @object-ui/components
2
2
 
3
+ ## 14.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6a74160: Sharing-rule form: pick, don't type. Three new widget-hint field components make
8
+ the generic object form render pickers where an admin previously had to type
9
+ machine data (driven by the framework `widget` hints on `sys_sharing_rule`;
10
+ generalizes the `capability-multiselect` pattern). All degrade to the underlying
11
+ `type` renderer when a widget is unregistered.
12
+
13
+ - **`object-ref`** — choose a registered object by name (searchable `Combobox`),
14
+ backed by the new `DataSource.getObjects()` (`ObjectStackAdapter` lists code-
15
+ and DB-defined objects via `/api/v1/meta/object`), falling back to a
16
+ `sys_metadata` query. Stores the object's `name`.
17
+ - **`filter-condition`** — a visual criteria builder (`FilterBuilder`) scoped to
18
+ the fields of the object chosen in a sibling field (via `getObjectSchema`),
19
+ round-tripping the stored **MongoDB-style** FilterCondition JSON. Criteria the
20
+ builder can't represent (or invalid JSON) fall back to a raw-JSON editor, with
21
+ an always-available "Edit as JSON" toggle — nothing is hidden or lost.
22
+ - **`recipient-picker`** — a record picker whose target object follows a sibling
23
+ `recipient_type` (`user`→sys_user, `team`→sys_team, `business_unit`/
24
+ `unit_and_subordinates`→sys_business_unit, `position`→sys_position), storing the
25
+ value the evaluator matches on (a record id, or the position **name**). Resets
26
+ the stored id when the type changes.
27
+
28
+ Wiring: the three keys join `DATA_SOURCE_FIELD_TYPES` (form.tsx) so the form
29
+ threads `dataSource` + `dependentValues` to them, and `INLINE_EXCLUDED_FIELD_TYPES`
30
+ (they're authored in the record form, not a grid cell). `DataSource.getObjects()`
31
+ is optional on the interface; the ObjectStack adapter implements it.
32
+
33
+ ### Patch Changes
34
+
35
+ - a44e7b6: Form fields honor their object-schema `widget` render hint on the field-group /
36
+ section layout path. `ObjectForm` renders objects that declare field groups
37
+ (e.g. `sys_sharing_rule`) via an auto-derived section layout that passed each
38
+ field's metadata through without hoisting its `widget` override to the top-level
39
+ form-field config, so a field with `widget: 'object-ref'` (or `filter-condition`
40
+ / `recipient-picker`) degraded to its bare `type` input — an admin was asked to
41
+ hand-type an object name instead of picking it. The form renderer now falls back
42
+ to the field metadata's own `widget` when no top-level override is present, so
43
+ the pickers render on sectioned forms just as they do on flat ones.
44
+ - Updated dependencies [443360a]
45
+ - Updated dependencies [c70bca7]
46
+ - Updated dependencies [86c69c3]
47
+ - Updated dependencies [05e56ca]
48
+ - Updated dependencies [5971cc4]
49
+ - Updated dependencies [6a74160]
50
+ - @object-ui/core@14.0.0
51
+ - @object-ui/i18n@14.0.0
52
+ - @object-ui/react@14.0.0
53
+ - @object-ui/types@14.0.0
54
+ - @object-ui/react-runtime@14.0.0
55
+ - @object-ui/sdui-parser@14.0.0
56
+
57
+ ## 13.2.0
58
+
59
+ ### Patch Changes
60
+
61
+ - 80901aa: Honor action `visible` (and `enabled`) predicates in three more action renderers.
62
+
63
+ Following the data-table row-action fix, three sibling renderers still rendered schema-defined actions without evaluating their `visible` CEL predicate:
64
+
65
+ - **`action:group` dropdown mode** (`@object-ui/components`) — dropdown items ignored `visible`/`enabled`, while the group's inline mode already honored them.
66
+ - **Related-list `list_toolbar` header actions** (`@object-ui/plugin-detail`) — e.g. an organization's "Invite User" button ignored `visible`, even though the sibling row actions (fed by the same `deriveActions` bridge) already honored it via the data-table's `DataTableRowActionItem`.
67
+ - **Grid bulk-action bar** (`@object-ui/plugin-grid`) — `bulkActionDefs.visible` was ignored entirely; the button is now hidden when the predicate is false (the `BulkActionDef.visible` doc comment is corrected from "disables" to "hides" to match).
68
+
69
+ Each now evaluates `visible` (and, where applicable, `enabled`) via a hook-safe per-item component that mirrors `RowActionMenuItem` / `DataTableRowActionItem`, resolving `features`/`user` from the ambient `ExpressionProvider` scope. Rendering-layer only — no action definitions changed.
70
+
71
+ - e492b9d: Permission sets — pure separation of **design** (Studio) and **assignment**
72
+ (Setup), per ADR-0056 / epic #2398. A `sys_permission_set` used to render its six
73
+ authorization facets in Setup as raw `[Object]` / JSON textareas, and only
74
+ objects+fields were editable in Studio; this reworks both surfaces.
75
+
76
+ **Setup (assign + read-only):**
77
+ - The six facets (`object_permissions`, `field_permissions`, `system_permissions`,
78
+ `row_level_security`, `tab_permissions`, `admin_scope`) now render read-only on
79
+ the `sys_permission_set` record page as a compact summary (counts, or capability
80
+ chips) plus a **“Design in Studio →”** deep-link into the structured editor
81
+ (`/apps/:appName/metadata/permission/:setName`, env scope). No `[Object]`, no
82
+ JSON — in the record view, inline edit, and the create/edit form. Implemented as
83
+ a `permission-facet-link` field widget stamped onto the six fields via the single
84
+ `ObjectStackAdapter.getObjectSchema` choke point and honored by DetailSection +
85
+ the record form.
86
+ - User assignment (add/remove via `sys_user_permission_set`) is surfaced directly
87
+ on the Setup record page.
88
+
89
+ **Studio (design every facet):** the permission matrix editor gains structured
90
+ editors for the facets that were JSON-only —
91
+ - **System Capabilities**: a multi-select over the live `sys_capability` registry
92
+ (scope-grouped, labelled chips).
93
+ - **Row-Level Security**: per-policy rows (object · operation · enabled) with CEL
94
+ USING/CHECK.
95
+ - **Tab Visibility**: per-tab `visible | hidden | default_on | default_off`.
96
+ - **Delegated Admin Scope**: business-unit + subtree, manage-assignments /
97
+ -bindings / author-env-sets toggles, and an assignable-permission-sets allowlist.
98
+ Assignment was moved out of the editor (it is now a Setup act) — the editor is
99
+ purely a design surface.
100
+
101
+ Storage/types are unchanged; editors read/write the draft’s existing parsed
102
+ fields and tolerate legacy JSON strings on load. Note: env-scope metadata saves of
103
+ these facets do not yet project onto the queryable `sys_permission_set` data
104
+ record the Setup summary reads, so a fresh Studio edit isn’t reflected in Setup’s
105
+ read-only view until the projection refreshes — tracked as a framework follow-up
106
+ (enforcement reads the authoritative metadata).
107
+
108
+ - Updated dependencies [53c40c2]
109
+ - @object-ui/i18n@13.2.0
110
+ - @object-ui/react@13.2.0
111
+ - @object-ui/types@13.2.0
112
+ - @object-ui/core@13.2.0
113
+ - @object-ui/react-runtime@13.2.0
114
+ - @object-ui/sdui-parser@13.2.0
115
+
3
116
  ## 13.1.0
4
117
 
5
118
  ### Patch Changes