@object-ui/components 4.4.0 → 4.6.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 +49 -0
- package/dist/index.css +69 -2
- package/dist/index.js +2379 -2146
- package/dist/index.umd.cjs +2 -2
- package/dist/packages/components/src/custom/navigation-overlay.d.ts +22 -0
- package/dist/packages/components/src/hooks/related-count-store.d.ts +70 -0
- package/dist/packages/components/src/index.d.ts +1 -0
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# @object-ui/components
|
|
2
2
|
|
|
3
|
+
## 4.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 3ee436d: feat(components): add `RelatedCountStore` runtime cache + `useRelatedCount`
|
|
8
|
+
hook (built on `useSyncExternalStore`, no new deps). Replaces
|
|
9
|
+
`PageTabsRenderer`'s local per-instance `derivedCounts` state with a
|
|
10
|
+
shared module-scoped store so multiple consumers of the same
|
|
11
|
+
object/parent pair share a single probe.
|
|
12
|
+
|
|
13
|
+
Wires `useBulkExecutor` to call `RelatedCountStore.invalidate(resource)`
|
|
14
|
+
after any successful bulk update/delete, so related-list badges on
|
|
15
|
+
parent records re-probe automatically on the next render instead of
|
|
16
|
+
showing stale counts.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- @object-ui/types@4.6.0
|
|
21
|
+
- @object-ui/core@4.6.0
|
|
22
|
+
- @object-ui/i18n@4.6.0
|
|
23
|
+
- @object-ui/react@4.6.0
|
|
24
|
+
|
|
25
|
+
## 4.5.0
|
|
26
|
+
|
|
27
|
+
### Minor Changes
|
|
28
|
+
|
|
29
|
+
- 6b6afd1: `page:tabs` items now render their optional `icon` (lucide name) and `count`
|
|
30
|
+
badge after the label. Counts >= 1000 are shortened to compact form
|
|
31
|
+
(e.g. `1.2k`). Spec-aligned: `PageTabsItem.icon` and `PageTabsItem.count`.
|
|
32
|
+
- aa7855f: `page:tabs` now auto-derives count badges from any descendant `record:related_list`.
|
|
33
|
+
|
|
34
|
+
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.
|
|
35
|
+
|
|
36
|
+
Behavior:
|
|
37
|
+
- Explicit `count` in the spec always wins.
|
|
38
|
+
- Probe is filtered by the parent record id via `relationshipField` when present (skipped until the parent record is loaded).
|
|
39
|
+
- Best-effort: a failed probe just omits the badge — no error surface.
|
|
40
|
+
- Cancellable on unmount.
|
|
41
|
+
|
|
42
|
+
### Patch Changes
|
|
43
|
+
|
|
44
|
+
- 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).
|
|
45
|
+
- Updated dependencies [ab5e281]
|
|
46
|
+
- Updated dependencies [22fa558]
|
|
47
|
+
- @object-ui/types@4.5.0
|
|
48
|
+
- @object-ui/i18n@4.5.0
|
|
49
|
+
- @object-ui/core@4.5.0
|
|
50
|
+
- @object-ui/react@4.5.0
|
|
51
|
+
|
|
3
52
|
## 4.4.0
|
|
4
53
|
|
|
5
54
|
### Patch Changes
|
package/dist/index.css
CHANGED
|
@@ -89,6 +89,7 @@
|
|
|
89
89
|
--font-weight-bold: 700;
|
|
90
90
|
--font-weight-extrabold: 800;
|
|
91
91
|
--tracking-tight: -0.025em;
|
|
92
|
+
--tracking-wide: 0.025em;
|
|
92
93
|
--tracking-wider: 0.05em;
|
|
93
94
|
--tracking-widest: 0.1em;
|
|
94
95
|
--leading-tight: 1.25;
|
|
@@ -396,6 +397,9 @@
|
|
|
396
397
|
.right-4 {
|
|
397
398
|
right: calc(var(--spacing) * 4);
|
|
398
399
|
}
|
|
400
|
+
.right-12 {
|
|
401
|
+
right: calc(var(--spacing) * 12);
|
|
402
|
+
}
|
|
399
403
|
.-bottom-12 {
|
|
400
404
|
bottom: calc(var(--spacing) * -12);
|
|
401
405
|
}
|
|
@@ -429,6 +433,9 @@
|
|
|
429
433
|
.z-20 {
|
|
430
434
|
z-index: 20;
|
|
431
435
|
}
|
|
436
|
+
.z-30 {
|
|
437
|
+
z-index: 30;
|
|
438
|
+
}
|
|
432
439
|
.z-50 {
|
|
433
440
|
z-index: 50;
|
|
434
441
|
}
|
|
@@ -549,6 +556,9 @@
|
|
|
549
556
|
.mr-1 {
|
|
550
557
|
margin-right: calc(var(--spacing) * 1);
|
|
551
558
|
}
|
|
559
|
+
.mr-1\.5 {
|
|
560
|
+
margin-right: calc(var(--spacing) * 1.5);
|
|
561
|
+
}
|
|
552
562
|
.mr-2 {
|
|
553
563
|
margin-right: calc(var(--spacing) * 2);
|
|
554
564
|
}
|
|
@@ -585,6 +595,9 @@
|
|
|
585
595
|
.ml-1 {
|
|
586
596
|
margin-left: calc(var(--spacing) * 1);
|
|
587
597
|
}
|
|
598
|
+
.ml-1\.5 {
|
|
599
|
+
margin-left: calc(var(--spacing) * 1.5);
|
|
600
|
+
}
|
|
588
601
|
.ml-2 {
|
|
589
602
|
margin-left: calc(var(--spacing) * 2);
|
|
590
603
|
}
|
|
@@ -1007,6 +1020,9 @@
|
|
|
1007
1020
|
.w-\[450px\] {
|
|
1008
1021
|
width: 450px;
|
|
1009
1022
|
}
|
|
1023
|
+
.w-\[calc\(100vw-1rem\)\] {
|
|
1024
|
+
width: calc(100vw - 1rem);
|
|
1025
|
+
}
|
|
1010
1026
|
.w-auto {
|
|
1011
1027
|
width: auto;
|
|
1012
1028
|
}
|
|
@@ -1022,6 +1038,9 @@
|
|
|
1022
1038
|
.w-px {
|
|
1023
1039
|
width: 1px;
|
|
1024
1040
|
}
|
|
1041
|
+
.w-screen {
|
|
1042
|
+
width: 100vw;
|
|
1043
|
+
}
|
|
1025
1044
|
.max-w-\(--skeleton-width\) {
|
|
1026
1045
|
max-width: var(--skeleton-width);
|
|
1027
1046
|
}
|
|
@@ -1112,6 +1131,9 @@
|
|
|
1112
1131
|
.min-w-11 {
|
|
1113
1132
|
min-width: calc(var(--spacing) * 11);
|
|
1114
1133
|
}
|
|
1134
|
+
.min-w-\[1rem\] {
|
|
1135
|
+
min-width: 1rem;
|
|
1136
|
+
}
|
|
1115
1137
|
.min-w-\[8rem\] {
|
|
1116
1138
|
min-width: 8rem;
|
|
1117
1139
|
}
|
|
@@ -1254,6 +1276,9 @@
|
|
|
1254
1276
|
.touch-none {
|
|
1255
1277
|
touch-action: none;
|
|
1256
1278
|
}
|
|
1279
|
+
.resize {
|
|
1280
|
+
resize: both;
|
|
1281
|
+
}
|
|
1257
1282
|
.resize-none {
|
|
1258
1283
|
resize: none;
|
|
1259
1284
|
}
|
|
@@ -2179,6 +2204,10 @@
|
|
|
2179
2204
|
--tw-tracking: var(--tracking-tight);
|
|
2180
2205
|
letter-spacing: var(--tracking-tight);
|
|
2181
2206
|
}
|
|
2207
|
+
.tracking-wide {
|
|
2208
|
+
--tw-tracking: var(--tracking-wide);
|
|
2209
|
+
letter-spacing: var(--tracking-wide);
|
|
2210
|
+
}
|
|
2182
2211
|
.tracking-wider {
|
|
2183
2212
|
--tw-tracking: var(--tracking-wider);
|
|
2184
2213
|
letter-spacing: var(--tracking-wider);
|
|
@@ -3242,6 +3271,16 @@
|
|
|
3242
3271
|
}
|
|
3243
3272
|
}
|
|
3244
3273
|
}
|
|
3274
|
+
.hover\:bg-primary\/40 {
|
|
3275
|
+
&:hover {
|
|
3276
|
+
@media (hover: hover) {
|
|
3277
|
+
background-color: color-mix(in srgb, hsl(var(--primary)) 40%, transparent);
|
|
3278
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3279
|
+
background-color: color-mix(in oklab, var(--color-primary) 40%, transparent);
|
|
3280
|
+
}
|
|
3281
|
+
}
|
|
3282
|
+
}
|
|
3283
|
+
}
|
|
3245
3284
|
.hover\:bg-primary\/80 {
|
|
3246
3285
|
&:hover {
|
|
3247
3286
|
@media (hover: hover) {
|
|
@@ -3600,6 +3639,14 @@
|
|
|
3600
3639
|
background-color: var(--color-muted);
|
|
3601
3640
|
}
|
|
3602
3641
|
}
|
|
3642
|
+
.active\:bg-primary\/60 {
|
|
3643
|
+
&:active {
|
|
3644
|
+
background-color: color-mix(in srgb, hsl(var(--primary)) 60%, transparent);
|
|
3645
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
3646
|
+
background-color: color-mix(in oklab, var(--color-primary) 60%, transparent);
|
|
3647
|
+
}
|
|
3648
|
+
}
|
|
3649
|
+
}
|
|
3603
3650
|
.active\:bg-sidebar-accent {
|
|
3604
3651
|
&:active {
|
|
3605
3652
|
background-color: var(--color-sidebar-accent);
|
|
@@ -4385,6 +4432,11 @@
|
|
|
4385
4432
|
margin-top: calc(var(--spacing) * 0);
|
|
4386
4433
|
}
|
|
4387
4434
|
}
|
|
4435
|
+
.sm\:block {
|
|
4436
|
+
@media (width >= 40rem) {
|
|
4437
|
+
display: block;
|
|
4438
|
+
}
|
|
4439
|
+
}
|
|
4388
4440
|
.sm\:flex {
|
|
4389
4441
|
@media (width >= 40rem) {
|
|
4390
4442
|
display: flex;
|
|
@@ -4460,9 +4512,9 @@
|
|
|
4460
4512
|
width: auto;
|
|
4461
4513
|
}
|
|
4462
4514
|
}
|
|
4463
|
-
.sm\:
|
|
4515
|
+
.sm\:w-full {
|
|
4464
4516
|
@media (width >= 40rem) {
|
|
4465
|
-
|
|
4517
|
+
width: 100%;
|
|
4466
4518
|
}
|
|
4467
4519
|
}
|
|
4468
4520
|
.sm\:max-w-3xl {
|
|
@@ -4480,6 +4532,16 @@
|
|
|
4480
4532
|
max-width: 425px;
|
|
4481
4533
|
}
|
|
4482
4534
|
}
|
|
4535
|
+
.sm\:max-w-\[var\(--ov-w\)\] {
|
|
4536
|
+
@media (width >= 40rem) {
|
|
4537
|
+
max-width: var(--ov-w);
|
|
4538
|
+
}
|
|
4539
|
+
}
|
|
4540
|
+
.sm\:max-w-\[var\(--ov-w\,42rem\)\] {
|
|
4541
|
+
@media (width >= 40rem) {
|
|
4542
|
+
max-width: var(--ov-w,42rem);
|
|
4543
|
+
}
|
|
4544
|
+
}
|
|
4483
4545
|
.sm\:max-w-lg {
|
|
4484
4546
|
@media (width >= 40rem) {
|
|
4485
4547
|
max-width: var(--container-lg);
|
|
@@ -5692,6 +5754,11 @@
|
|
|
5692
5754
|
display: none;
|
|
5693
5755
|
}
|
|
5694
5756
|
}
|
|
5757
|
+
.\[\&\>button\:last-of-type\]\:hidden {
|
|
5758
|
+
&>button:last-of-type {
|
|
5759
|
+
display: none;
|
|
5760
|
+
}
|
|
5761
|
+
}
|
|
5695
5762
|
.\[\&\>input\]\:flex-1 {
|
|
5696
5763
|
&>input {
|
|
5697
5764
|
flex: 1;
|