@object-ui/components 5.1.1 → 5.2.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,77 @@
1
1
  # @object-ui/components
2
2
 
3
+ ## 5.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - @object-ui/types@5.2.1
8
+ - @object-ui/core@5.2.1
9
+ - @object-ui/i18n@5.2.1
10
+ - @object-ui/react@5.2.1
11
+
12
+ ## 5.2.0
13
+
14
+ ### Minor Changes
15
+
16
+ - 87bc8ff: `DataEmptyState` (re-exported as `EmptyState`) is now the canonical
17
+ platform primitive for "no records / no data" states. Two new props
18
+ keep it flexible enough to absorb the hand-rolled variants that lived
19
+ in `plugin-list`, `plugin-kanban`, and `plugin-dashboard`:
20
+ - `showIcon?: boolean` — drops the icon container entirely. Used by the
21
+ kanban board-level empty banner, which is a status banner rather than
22
+ a true empty-state.
23
+ - `iconWrapperClassName?: string` — overrides the default muted rounded
24
+ square. Pass `""` to render the icon raw (used by `ListView`'s grid
25
+ empty state, which uses a large standalone glyph).
26
+
27
+ Adopters:
28
+ - `plugin-list` (`ListView` grid empty-state) — preserves the existing
29
+ large icon, title, message, add-record button and `data-testid`s,
30
+ but delegates the structural markup to `DataEmptyState`.
31
+ - `plugin-kanban` (board-level "all columns empty" banner) — keeps the
32
+ dashed border + `role="status"` / `aria-live="polite"` semantics.
33
+ - `plugin-dashboard` (`PivotTable` zero-rows branch) — keeps the
34
+ custom 4-quad SVG icon and `pivot-empty-state` test id.
35
+
36
+ No public-API change for consumers; the older inline markup is gone
37
+ but the rendered output, translation keys, and test hooks are
38
+ preserved.
39
+
40
+ - a8d12ec: `page:header` subtitle and title-format interpolation now translates
41
+ enum field values through the i18n option-label dictionary.
42
+
43
+ A schema like `subtitle: "{industry} · {type}"` previously rendered the
44
+ raw enum values (`"technology · customer"`) regardless of locale or
45
+ authored option labels. The interpolator now looks up the current
46
+ record's `objectSchema.fields` and routes each token through
47
+ `useSafeFieldLabel().fieldOptionLabel(...)`, so the same template
48
+ renders as `"科技 · 正式客户"` in zh-CN and `"Technology · Customer"`
49
+ in en — without authors having to write per-locale subtitle templates.
50
+
51
+ The change is transparent for tokens that resolve to non-enum field
52
+ values; only fields with an `options` array are remapped.
53
+
54
+ ### Patch Changes
55
+
56
+ - Updated dependencies [de0c5e6]
57
+ - Updated dependencies [9997cae]
58
+ - Updated dependencies [321294c]
59
+ - Updated dependencies [b2d1704]
60
+ - Updated dependencies [0a644f0]
61
+ - Updated dependencies [a3cb88f]
62
+ - Updated dependencies [5425608]
63
+ - Updated dependencies [3ebba63]
64
+ - Updated dependencies [e919433]
65
+ - Updated dependencies [70b5570]
66
+ - Updated dependencies [aa063db]
67
+ - Updated dependencies [d9c3bae]
68
+ - Updated dependencies [d1442e3]
69
+ - Updated dependencies [7c7400a]
70
+ - @object-ui/types@5.2.0
71
+ - @object-ui/core@5.2.0
72
+ - @object-ui/i18n@5.2.0
73
+ - @object-ui/react@5.2.0
74
+
3
75
  ## 5.1.1
4
76
 
5
77
  ### Patch Changes
package/dist/index.css CHANGED
@@ -4449,6 +4449,48 @@
4449
4449
  }
4450
4450
  }
4451
4451
  }
4452
+ .motion-safe\:bg-\[linear-gradient\(90deg\,hsl\(var\(--muted\)\)_0\%\,hsl\(var\(--muted-foreground\)\/0\.12\)_50\%\,hsl\(var\(--muted\)\)_100\%\)\] {
4453
+ @media (prefers-reduced-motion: no-preference) {
4454
+ background-image: linear-gradient(90deg,hsl(var(--muted)) 0%,hsl(var(--muted-foreground)/0.12) 50%,hsl(var(--muted)) 100%);
4455
+ }
4456
+ }
4457
+ .motion-safe\:bg-\[length\:200\%_100\%\] {
4458
+ @media (prefers-reduced-motion: no-preference) {
4459
+ background-size: 200% 100%;
4460
+ }
4461
+ }
4462
+ .motion-safe\:duration-300 {
4463
+ @media (prefers-reduced-motion: no-preference) {
4464
+ --tw-duration: 300ms;
4465
+ transition-duration: 300ms;
4466
+ }
4467
+ }
4468
+ .motion-safe\:animate-in {
4469
+ @media (prefers-reduced-motion: no-preference) {
4470
+ animation-name: enter;
4471
+ animation-duration: 150ms;
4472
+ --tw-enter-opacity: initial;
4473
+ --tw-enter-scale: initial;
4474
+ --tw-enter-rotate: initial;
4475
+ --tw-enter-translate-x: initial;
4476
+ --tw-enter-translate-y: initial;
4477
+ }
4478
+ }
4479
+ .motion-safe\:duration-300 {
4480
+ @media (prefers-reduced-motion: no-preference) {
4481
+ animation-duration: 300ms;
4482
+ }
4483
+ }
4484
+ .motion-safe\:fade-in-0 {
4485
+ @media (prefers-reduced-motion: no-preference) {
4486
+ --tw-enter-opacity: 0;
4487
+ }
4488
+ }
4489
+ .motion-safe\:zoom-in-95 {
4490
+ @media (prefers-reduced-motion: no-preference) {
4491
+ --tw-enter-scale: .95;
4492
+ }
4493
+ }
4452
4494
  .sm\:relative {
4453
4495
  @media (width >= 40rem) {
4454
4496
  position: relative;
@@ -5681,6 +5723,16 @@
5681
5723
  height: calc(var(--spacing) * 4);
5682
5724
  }
5683
5725
  }
5726
+ .\[\&_svg\]\:max-h-40 {
5727
+ & svg {
5728
+ max-height: calc(var(--spacing) * 40);
5729
+ }
5730
+ }
5731
+ .\[\&_svg\]\:w-auto {
5732
+ & svg {
5733
+ width: auto;
5734
+ }
5735
+ }
5684
5736
  .\[\&_svg\]\:shrink-0 {
5685
5737
  & svg {
5686
5738
  flex-shrink: 0;