@object-ui/components 16.0.0 → 16.1.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,110 @@
1
1
  # @object-ui/components
2
2
 
3
+ ## 16.1.0
4
+
5
+ ### Patch Changes
6
+
7
+ - ef14f69: feat(fields): CheckboxesField per-option `visibleWhen` cascading + `dependsOn` gating (completes the option-widget parity set)
8
+
9
+ `checkboxes` was the last static-option widget still rendering `config.options`
10
+ raw — with no per-option `visibleWhen` filtering, `dependsOn` gating, or cascade
11
+ clear. It now matches `MultiSelectField` (its multi-value sibling), completing
12
+ the ADR-0058 parity across `select` / `multiselect` / `radio` / `checkboxes`.
13
+
14
+ - **`@object-ui/fields`**: `CheckboxesField` routes through the shared
15
+ `useCascadingOptions` hook — offered boxes narrow against the live record +
16
+ `current_user`, the control gates behind a "select the parent first" hint
17
+ while a `dependsOn` field is empty, and selections no longer offered are
18
+ pruned per-element from the array. Adds `checkboxes-empty-*` /
19
+ `checkboxes-option-*` testids.
20
+ - **`@object-ui/components`**: adds `checkboxes` to the form renderer's option
21
+ field sets (`CASCADE_OPTION_FIELD_TYPES`, the cross-field cascade-clear
22
+ effect, and the option pre-filter) so a `checkboxes` field is threaded
23
+ `dependentValues` and gated identically to the other option widgets.
24
+ - Tests: `CheckboxesField.cascade.test.tsx` mirrors `MultiSelectField.cascade.test.tsx`.
25
+
26
+ - 69fa5d1: chore(lint): clear the baseline lint errors in components (objectui#2713 Wave 3)
27
+
28
+ Wave 3 of the #2713 lint-gate restoration. `@object-ui/components` was red at
29
+ baseline on `main`; cleared every **error** (no behavior change; warnings out of
30
+ scope):
31
+
32
+ - **`react-hooks/rules-of-hooks`** — `react-page` `ReactKindPage` had a
33
+ capability-gate early return _before_ four hooks (incl. a `useEffect` that
34
+ `import()`s the react runtime). Hoisted the hooks above the gate **and guarded
35
+ the import** (`if (!capabilityEnabled) return` inside the effect) so a disabled
36
+ build still never loads the gated runtime; the disabled notice is returned
37
+ after the hooks. Translation helpers in `empty` / `action-bar` / `action-menu`
38
+ unwrap a try/catch around the provider-safe `useObjectTranslation` (the #2709
39
+ fix).
40
+ - **`react-hooks/static-components`** — dynamic renderer/icon lookups
41
+ (`ComponentRegistry.get`, `resolveIcon`) in `action-bar` / `action-group` ×2 /
42
+ `action-menu`, and the five `__tests__` helpers that render a registry-resolved
43
+ component, are stable references → justified scoped disables.
44
+ - **`react-hooks/purity`** — `ui/sidebar` skeleton width uses `Math.random()`
45
+ once per mount (`useMemo([])`) for a decorative placeholder → justified scoped
46
+ disable.
47
+ - **`@typescript-eslint/no-empty-object-type`** — `ShimmerSkeletonProps` empty
48
+ extend → `type` alias.
49
+ - **`no-useless-assignment`** — `test-utils` `maxDepth` dead initializer → single
50
+ `const`.
51
+ - **`no-require-imports`** — `config-panel-renderer` test uses a top-level
52
+ `import React` instead of an in-test `require`.
53
+ - **stale `eslint-disable`** — removed a `jsx-a11y/alt-text` directive in
54
+ `elements` whose plugin is not loaded in the flat config.
55
+
56
+ - 1629313: feat(fields): RadioField per-option `visibleWhen` cascading + `dependsOn` gating; single-source the option resolver
57
+
58
+ Brings `RadioField` to parity with `SelectField` / `MultiSelectField` for ADR-0058
59
+ cascading & role-gated options, and collapses the three copies of the
60
+ gate-then-filter logic onto one shared resolver.
61
+
62
+ - **`@object-ui/core`**: new pure `resolveCascadingOptions(rawOptions, record, dependsOn, scope)`
63
+ → `{ options, gated, dependsOnFields }` — the single source of truth for
64
+ `dependsOn` gating + per-option `visibleWhen` filtering.
65
+ - **`@object-ui/fields`**: `RadioField` now narrows its offered radios against
66
+ the live record + `current_user`, gates behind a "select the parent first"
67
+ hint while a `dependsOn` field is empty, and clears a value no longer offered
68
+ (scalar cascade clear). The `useCascadingOptions` hook is refactored to a thin
69
+ React wrapper over `resolveCascadingOptions`.
70
+ - **`@object-ui/components`**: the form renderer's inline option pre-filter and
71
+ cross-field cascade-clear effect now call `resolveCascadingOptions` instead of
72
+ re-deriving gating/filtering, so they can't drift from the widgets (no
73
+ behavior change).
74
+ - Tests: `RadioField.cascade.test.tsx` mirrors the select cascade tests; core
75
+ gains `resolveCascadingOptions` unit coverage.
76
+
77
+ - Updated dependencies [0318118]
78
+ - Updated dependencies [1c8935a]
79
+ - Updated dependencies [af1b0db]
80
+ - Updated dependencies [8b8b744]
81
+ - Updated dependencies [7cf4051]
82
+ - Updated dependencies [803558e]
83
+ - Updated dependencies [2e7d7f0]
84
+ - Updated dependencies [94d4876]
85
+ - Updated dependencies [1100a8b]
86
+ - Updated dependencies [7abe4cd]
87
+ - Updated dependencies [549c67d]
88
+ - Updated dependencies [ebe6494]
89
+ - Updated dependencies [2b17339]
90
+ - Updated dependencies [31b77d4]
91
+ - Updated dependencies [6d4fbe6]
92
+ - Updated dependencies [0a3710b]
93
+ - Updated dependencies [f80aaf2]
94
+ - Updated dependencies [62b9ab5]
95
+ - Updated dependencies [1629313]
96
+ - Updated dependencies [29c6040]
97
+ - Updated dependencies [faebac3]
98
+ - Updated dependencies [2331ac9]
99
+ - Updated dependencies [199fa83]
100
+ - Updated dependencies [eee4ded]
101
+ - @object-ui/i18n@16.1.0
102
+ - @object-ui/core@16.1.0
103
+ - @object-ui/types@16.1.0
104
+ - @object-ui/react@16.1.0
105
+ - @object-ui/react-runtime@16.1.0
106
+ - @object-ui/sdui-parser@16.1.0
107
+
3
108
  ## 16.0.0
4
109
 
5
110
  ### Minor Changes
@@ -27,6 +27,5 @@ import * as React from "react";
27
27
  * @example
28
28
  * <ShimmerSkeleton className="h-4 w-32 rounded-md" />
29
29
  */
30
- export interface ShimmerSkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
31
- }
30
+ export type ShimmerSkeletonProps = React.HTMLAttributes<HTMLDivElement>;
32
31
  export declare function ShimmerSkeleton({ className, ...props }: ShimmerSkeletonProps): React.JSX.Element;