@object-ui/components 4.3.0 → 4.5.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,75 @@
1
1
  # @object-ui/components
2
2
 
3
+ ## 4.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 6b6afd1: `page:tabs` items now render their optional `icon` (lucide name) and `count`
8
+ badge after the label. Counts >= 1000 are shortened to compact form
9
+ (e.g. `1.2k`). Spec-aligned: `PageTabsItem.icon` and `PageTabsItem.count`.
10
+ - aa7855f: `page:tabs` now auto-derives count badges from any descendant `record:related_list`.
11
+
12
+ For every tab item whose `count` is not set explicitly, the renderer walks the tab's children (depth-first) to find the first `record:related_list` schema node and issues a `limit:1` find through the active `dataSource` to read the matching `total`. The badge appears in the tab strip without spec authors having to wire counts manually.
13
+
14
+ Behavior:
15
+ - Explicit `count` in the spec always wins.
16
+ - Probe is filtered by the parent record id via `relationshipField` when present (skipped until the parent record is loaded).
17
+ - Best-effort: a failed probe just omits the badge — no error surface.
18
+ - Cancellable on unmount.
19
+
20
+ ### Patch Changes
21
+
22
+ - 170d89f: PageTabsRenderer auto-count now descends into accordion (`properties.items`) and sums counts when a tab contains multiple `record:related_list` widgets — matches Salesforce "Related" tab semantics. Previously only the first list was probed (or none, if wrapped in an accordion).
23
+ - Updated dependencies [ab5e281]
24
+ - Updated dependencies [22fa558]
25
+ - @object-ui/types@4.5.0
26
+ - @object-ui/i18n@4.5.0
27
+ - @object-ui/core@4.5.0
28
+ - @object-ui/react@4.5.0
29
+
30
+ ## 4.4.0
31
+
32
+ ### Patch Changes
33
+
34
+ - 2bd45af: feat(shell): main becomes the scroll container; record tabs are sticky
35
+ - `AppShell`'s SidebarProvider wrapper is now constrained to viewport
36
+ height (`h-svh overflow-hidden`) instead of expanding with content via
37
+ the default `min-h-svh`. This makes the inner `<main>` (which is
38
+ `overflow-auto`) the actual scroll container instead of the window.
39
+ - `RecordDetailView` page-mode container drops the redundant
40
+ `h-full overflow-auto` (avoids nested scrollers; main owns scroll now).
41
+ - `page:tabs` (horizontal) gets `sticky top-0 z-20` with a translucent
42
+ backdrop so the tab strip stays visible while users scroll through
43
+ long record pages — the Salesforce Lightning behaviour our schemas
44
+ were already implying.
45
+ - @object-ui/types@4.4.0
46
+ - @object-ui/core@4.4.0
47
+ - @object-ui/i18n@4.4.0
48
+ - @object-ui/react@4.4.0
49
+
50
+ ## 4.3.1
51
+
52
+ ### Patch Changes
53
+
54
+ - 6b683c8: fix(detail): clean up record page rendering
55
+ - Drop `ai:chat_window` from the protocol-component placeholder list. The
56
+ floating chat overlay (plugin-chatbot) is the canonical AI entry point;
57
+ inline page schemas that still reference `ai:chat_window` now surface
58
+ as an explicit "Unknown component type" so the misconfiguration is
59
+ fixed at the source instead of silently leaking a placeholder card.
60
+ - `page:header` now resolves `{field.path}` tokens in `title` / `description`
61
+ against the current record context (matching the behaviour of the
62
+ alternative `containers.tsx` renderer). Without this, schemas like
63
+ `title: "{first_name} {last_name}"` rendered the literal template.
64
+ - `containers.tsx` `PageHeaderRenderer`: also read from `schema.properties.*`
65
+ as a fallback so both inlined and raw-bag schema shapes are supported.
66
+
67
+ - Updated dependencies [5f4ac6e]
68
+ - @object-ui/i18n@4.3.1
69
+ - @object-ui/react@4.3.1
70
+ - @object-ui/types@4.3.1
71
+ - @object-ui/core@4.3.1
72
+
3
73
  ## 4.3.0
4
74
 
5
75
  ### Patch Changes
package/dist/index.css CHANGED
@@ -531,6 +531,9 @@
531
531
  .mt-2 {
532
532
  margin-top: calc(var(--spacing) * 2);
533
533
  }
534
+ .mt-3 {
535
+ margin-top: calc(var(--spacing) * 3);
536
+ }
534
537
  .mt-4 {
535
538
  margin-top: calc(var(--spacing) * 4);
536
539
  }
@@ -546,6 +549,9 @@
546
549
  .mr-1 {
547
550
  margin-right: calc(var(--spacing) * 1);
548
551
  }
552
+ .mr-1\.5 {
553
+ margin-right: calc(var(--spacing) * 1.5);
554
+ }
549
555
  .mr-2 {
550
556
  margin-right: calc(var(--spacing) * 2);
551
557
  }
@@ -582,6 +588,9 @@
582
588
  .ml-1 {
583
589
  margin-left: calc(var(--spacing) * 1);
584
590
  }
591
+ .ml-1\.5 {
592
+ margin-left: calc(var(--spacing) * 1.5);
593
+ }
585
594
  .ml-2 {
586
595
  margin-left: calc(var(--spacing) * 2);
587
596
  }
@@ -1109,6 +1118,9 @@
1109
1118
  .min-w-11 {
1110
1119
  min-width: calc(var(--spacing) * 11);
1111
1120
  }
1121
+ .min-w-\[1rem\] {
1122
+ min-width: 1rem;
1123
+ }
1112
1124
  .min-w-\[8rem\] {
1113
1125
  min-width: 8rem;
1114
1126
  }
@@ -3945,6 +3957,12 @@
3945
3957
  --tw-enter-translate-y: 0.5rem;
3946
3958
  }
3947
3959
  }
3960
+ .data-\[state\=active\]\:border {
3961
+ &[data-state="active"] {
3962
+ border-style: var(--tw-border-style);
3963
+ border-width: 1px;
3964
+ }
3965
+ }
3948
3966
  .data-\[state\=active\]\:bg-background {
3949
3967
  &[data-state="active"] {
3950
3968
  background-color: var(--color-background);
@@ -4300,6 +4318,14 @@
4300
4318
  transition-property: none;
4301
4319
  }
4302
4320
  }
4321
+ .supports-\[backdrop-filter\]\:bg-background\/60 {
4322
+ @supports (backdrop-filter: var(--tw)) {
4323
+ background-color: color-mix(in srgb, hsl(var(--background)) 60%, transparent);
4324
+ @supports (color: color-mix(in lab, red, red)) {
4325
+ background-color: color-mix(in oklab, var(--color-background) 60%, transparent);
4326
+ }
4327
+ }
4328
+ }
4303
4329
  .supports-\[backdrop-filter\]\:bg-background\/80 {
4304
4330
  @supports (backdrop-filter: var(--tw)) {
4305
4331
  background-color: color-mix(in srgb, hsl(var(--background)) 80%, transparent);
@@ -4758,6 +4784,11 @@
4758
4784
  display: none;
4759
4785
  }
4760
4786
  }
4787
+ .md\:w-80 {
4788
+ @media (width >= 48rem) {
4789
+ width: calc(var(--spacing) * 80);
4790
+ }
4791
+ }
4761
4792
  .md\:w-\[500px\] {
4762
4793
  @media (width >= 48rem) {
4763
4794
  width: 500px;