@object-ui/plugin-list 17.1.0 → 17.3.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,265 @@
1
1
  # @object-ui/plugin-list
2
2
 
3
+ ## 17.3.0
4
+
5
+ ### Patch Changes
6
+
7
+ - 978705c: Gallery covers now resolve the `coverField` value through its **file value
8
+ shape** instead of assuming the field value _is_ a URL string, so an
9
+ ADR-0104-conforming `image` value renders a cover again (objectui#3317).
10
+
11
+ Since ADR-0104 D3 wave 2 the stored value of a `file`/`image`/`avatar`/
12
+ `video`/`audio` field is an opaque `sys_file` id, which the read path expands
13
+ in place into `{ id, name, size, mimeType, url }`. `ObjectGallery` read the
14
+ value twice — `hasAnyCover` tested `typeof value === 'string'`, and each card
15
+ did `item[coverField] as string` — so against a spec-correct object value the
16
+ cover area collapsed for the whole gallery, and the card underneath it built
17
+ an `<img src="[object Object]">`. The only values that ever rendered were the
18
+ inline `data:` URIs and external links ADR-0104 retired, which is why this
19
+ stayed invisible.
20
+
21
+ ## What changed
22
+ - Both reads now share one `resolveCoverUrl`, so the "does anything have a
23
+ cover?" predicate and the per-card render can no longer disagree — that
24
+ disagreement is what collapsed the area for records that did have a cover.
25
+ - Shape handling is delegated to `readFileValues` from `@object-ui/fields`,
26
+ the platform's existing single arbiter of file value shapes, rather than
27
+ re-derived in the gallery. It accepts the expanded `{ url }` object, a
28
+ legacy bare URL string (still valid during the dual-mode window), and a
29
+ still-bare `sys_file` id — which resolves to the stable
30
+ `/api/v1/storage/files/:id` endpoint instead of reaching `<img src>` as a
31
+ raw opaque token. A value carrying no resolvable URL yields no cover, which
32
+ collapses the area rather than emitting a broken `src`.
33
+ - A `multiple` file field's first entry is used as the cover.
34
+
35
+ The sibling paths that thread `coverField`/`imageField` around
36
+ (`ListView`, `app-shell/ObjectView`, `plugin-view/ObjectView`) pass the field
37
+ **name**, not the value, and needed no change.
38
+
39
+ - d915c47: Relation fields (`lookup` / `master_detail` / `user` / `tree`) are now usable in action and conditional-formatting predicates: they bind as the stored foreign key on every surface, and the fields a predicate reads are included in the query projection (#3501).
40
+
41
+ Before this, one predicate over one relation field had four different fates, decided by things its author does not control. `$expand` **replaces** the id in place with the whole related record, and a view expands exactly the relations it shows as COLUMNS — so `record.owner == "U1"` was **true** where the column was absent, **false** where it was displayed, and a **fault** where the field was neither displayed nor projected (a list's `$select` was built from its columns alone, and CEL treats an absent key as a fault, not as null). A fault is fail-CLOSED on the row kebab and the selection bar and fail-OPEN on the lenient paths, so the same authoring mistake hid the button from everyone on one surface and showed it to everyone on the next, with nothing on screen to point at either. The server, meanwhile, only ever sees the id — so client and server could not agree, which is the one thing ADR-0036 / ADR-0058 exist to guarantee.
42
+
43
+ Two changes close it. `toPredicateRecord` (new, `@object-ui/core`) collapses expanded relation values back to their ids when a record is bound for evaluation — driven by the object's own field types, not by sniffing for an `id` key, so a `json` field that happens to carry one is untouched. It is threaded through `evalRowPredicate` / `resolveConditionalFormatting` (via a new `fields` option), `useRowPredicate`, `partitionBulkRows`, and both `page:header` evaluators, with the object schema supplied by `ObjectGrid` / `ListView` / `ObjectKanban` / the record context. Kanban card formatting is threaded the same way, so a rule cannot match on the grid view of a list and silently never match on its board. Display is unaffected — a detail-page title still renders the related record's name, and the schema-only `kanban-ui` entry point (which has no object schema to offer) keeps using the payload verbatim. `collectPredicateFieldRefs` / `listViewPredicates` (new) harvest the `record.x` / `data.x` references out of a view's conditional formatting, row-action defs, bulk-action defs, promoted object actions and `userActions` overrides, and add them to `$select` — intersected with the object's declared fields plus the platform columns every object carries (`isProjectableField`), because an unknown key is not ignored by every backend. No `$expand` is added: a predicate wants the foreign key, which is what an unexpanded relation already is.
44
+
45
+ - 6195841: Localize the record-detail overlay heading that `ListView` and `ObjectGrid`
46
+ build themselves (objectui#3426)
47
+
48
+ #3423 gave `NavigationOverlay`'s `resolvedTitle` an i18n default
49
+ (`detail.recordDetail`), but two hosts never let that default run: they
50
+ string-built an English heading in TypeScript and passed it as the `title`
51
+ prop, so a zh/ja/de session got a fully localized drawer with one English
52
+ heading on it.
53
+
54
+ - `packages/plugin-list/src/ListView.tsx` — `` `${schema.label} Detail` ``
55
+ - `packages/plugin-grid/src/ObjectGrid.tsx` — the same template, plus a bare
56
+ `'Record Detail'` literal for the no-label case
57
+
58
+ Both are user-reachable, not dead defaults. `list-view` / `object-grid` are
59
+ public page blocks and `navigation` is an authorable key on their schema, so a
60
+ page that authors `navigation: { mode: 'drawer' }` opens exactly this overlay
61
+ on row click. (`app-shell`'s `ObjectView` does suppress it — it passes its own
62
+ `onRowClick`, which takes priority inside `useNavigationOverlay`, and renders
63
+ its own overlay — but that is one host overriding a public block, not proof the
64
+ branch is unreachable.)
65
+
66
+ ## What changed
67
+
68
+ Both call sites now key their heading instead of concatenating it:
69
+
70
+ - a new `detail.recordDetailWithLabel` (`'{{label}} Detail'`) carries the
71
+ object label through interpolation, so a pack whose qualifier trails the noun
72
+ (`de`) or that needs a possessive particle (`ja`/`zh`) can write its own
73
+ arrangement rather than inherit English word order;
74
+ - the no-label branch reuses `detail.recordDetail` — the very key the overlay
75
+ itself defaults to — so one heading on one control cannot drift into two
76
+ translations.
77
+
78
+ The new key is added to all ten locale packs and to each plugin's English
79
+ defaults map (`LIST_DEFAULT_TRANSLATIONS` / `GRID_DEFAULT_TRANSLATIONS`), which
80
+ is what `createSafeTranslation` falls back to with no `I18nProvider` mounted.
81
+
82
+ English output is byte-identical in every branch (`Contacts Detail` /
83
+ `Contacts Detail` / `Record Detail`), with and without a provider — pinned by a
84
+ provider-less test file per plugin, kept separate because `initReactI18next`
85
+ registers its instance as a module global that outlives `cleanup()`.
86
+
87
+ - d7f350a: `UserFilters` no longer carries its own operator table when it lowers a `ViewTab.filter` preset into an ObjectQL AST node. The private `specOperatorToAst` was the second hand-kept operator map in this package and it had drifted: it lowered `not_in` — the spec's OWN canonical spelling — and the legacy `nin` to the spaced `'not in'`, a spelling that appears in no spec vocabulary. `isFilterAST` refuses it, so clicking such a tab produced an empty list plus `400 INVALID_FILTER`. Measured against a real backend (published `@objectstack/*@17.0.0-rc.2` + app-showcase, on `showcase_task`): `$filter=[["status","not in",["done"]]]` returned `400 INVALID_FILTER`, while `[["status","not_in",["done"]]]` returned `200` with the same 8 records as the `["status","!=","done"]` baseline.
88
+
89
+ Lowering is now purely structural — all 19 `VIEW_FILTER_OPERATORS` are already members of the wire's `VALID_AST_OPERATORS`, so nothing needs translating — with the spec's own `normalizeFilterOperator` as the single exit for the legacy spellings stored metadata still carries (`gt`, `eq`, `nin`, `notEquals`, …). That is the same exit the write side (`viewFilterFold`) and the saved-view fold in `@object-ui/core` already use, so the directions cannot drift into two dialects. An operator the spec does not know is passed through verbatim, so a misspelling still earns a loud `400` rather than being coerced into a valid filter.
90
+
91
+ `before` and `after` are now passed through rather than rewritten to `<` and `>`. That was the one judgement call, and it was settled by measurement rather than assumption: on the same live backend the word and the symbol return identical status and identical record ids, on a `date` field and on a `datetime` field, in both directions — so the rewrite was a no-op and dropping it is a pure fix. The remaining 18 canonical operators were measured the same way and are likewise unchanged in what the server answers; `not_in` is the only one whose answer changes, from `400` to the correct rows. Tab presets given in the legacy already-lowered `filters: triplet[]` shape are untouched, as before.
92
+
93
+ ## 17.2.0
94
+
95
+ ### Minor Changes
96
+
97
+ - c5ccbd5: Stop declaring 12 `@object-ui/data-objectstack` / `@object-ui/plugin-chatbot` /
98
+ `@object-ui/plugin-list` symbols under names `@objectstack/spec` owns
99
+ (objectui#3160, objectstack#4115 batch 6). All three packages leave the ledger.
100
+
101
+ **Breaking for importers of `@object-ui/data-objectstack`** — four exported
102
+ names changed, because the spec exports the same name for a _different_ thing:
103
+
104
+ | was | now | what the spec's same-named export actually is |
105
+ | :-------------------- | :-------------------------- | :--------------------------------------------------------------------------------------- |
106
+ | `CacheStats` | `MetadataCacheStats` | the platform `ICacheService` counters (`keyCount`, `memoryUsage`) |
107
+ | `MetadataSaveOptions` | `MetadataClientSaveOptions` | options for writing a metadata item to a **file** (`format`, `path`, `indent`, `atomic`) |
108
+ | `SecurityPolicy` | `SecurityManagerPolicy` | the package supply-chain policy (`autoScan`, licences, code signing, sandbox) |
109
+ | `ValidationError` | `DataApiValidationError` | a plain `{ field, message, code? }` entry in a validation report |
110
+
111
+ Each pair is disjoint or nearly so — `MetadataSaveOptions` and `SecurityPolicy`
112
+ share not one key with the spec type whose name they wore — so none of them was
113
+ a dialect to reconcile; they were four unrelated concepts squatting on spec
114
+ names. `DataApiValidationError` follows the `<what was validated>Validation<Error|Result>`
115
+ convention registered on objectstack#4115 (`@object-ui/core` took
116
+ `SchemaNodeValidationError` in batch 4). Its **runtime** `name` deliberately
117
+ stays `'ValidationError'`: `normaliseClientError` and `@object-ui/react`'s
118
+ error-message helper both sniff `err.name`, so that string is a wire contract,
119
+ not a symbol.
120
+
121
+ **Breaking for importers of `@object-ui/plugin-chatbot`** — `PendingActionRow`
122
+ and `PendingActionStatus` are now re-exported from `@objectstack/spec/contracts`
123
+ instead of hand-transcribed, which narrows them. The copies had drifted three
124
+ ways, and each drift had **disabled a compile-time check** rather than merely
125
+ differed from one:
126
+
127
+ - `status: PendingActionStatus | string` — a union with `string` absorbs the
128
+ literals, so that annotation carried no information at all;
129
+ - `[key: string]: unknown` — the objectstack#4075 mechanism: an index signature
130
+ makes every structural comparison against the spec answer "identical", however
131
+ far the copy has drifted;
132
+ - `created_at` / `updated_at`, which the service contract does not carry and no
133
+ consumer in this repo reads.
134
+
135
+ **Breaking for importers of `@object-ui/plugin-list`** — `ViewTab` is derived from the spec's `ViewTabSchema`
136
+ — from its **input** side, because `pinned` / `isDefault` / `visible` carry
137
+ `.default()`s and this component is handed authored metadata, not parsed output.
138
+ That removes a renderer-side tolerance the copy carried: `visible` accepted
139
+ `string | boolean` and the tab bar compared it against the literal `'false'`, a
140
+ spelling no producer emits. `label` also stops being required (the spec makes it
141
+ optional; `name` is the identifier) and `filter` stops being `any`.
142
+
143
+ `ListView` and `UserFilters` keep their names as declared dialects: both are the
144
+ React **renderers** of the spec types whose names they share, and each takes that
145
+ spec type as a prop (`ListViewProps.schema`, `UserFiltersProps.config`) rather
146
+ than restating its shape. `Tool` and `MessageContent` in `plugin-chatbot` are
147
+ vendored Vercel AI Elements / Shadcn primitives — upstream's component API, not
148
+ objectui's authored surface — so the guard now skips that directory the same way
149
+ it already skips `components/src/ui/`, with a test that fails if any file there
150
+ stops carrying its vendor banner.
151
+
152
+ Scored `minor`, not `major`, per this repo's fixed-group rule — objectui's major
153
+ tracks `@objectstack`, so breaking changes of our own ship as minor with the
154
+ semantics spelled out above (see AGENTS.md §版本号策略). A `major` here would carry
155
+ all 39 packages of the fixed group to `18.0.0` and off objectstack's 17.x line.
156
+
157
+ - 5cb75b3: fix(timeline,list): the timeline honours `timeline.dateField`, not just `timeline.startDateField` (#3129)
158
+
159
+ `dateField` is the pre-#2231 alias for `startDateField`. `@object-ui/types`
160
+ declares it on the nested config (`ListViewTimelineConfig`), and both
161
+ `ObjectView` read-sites (app-shell and plugin-view) resolve it — but the two
162
+ read-sites that actually drive the axis did not:
163
+
164
+ - `ObjectTimeline` consulted the alias only on the FLAT prop (`schema.dateField`),
165
+ never on the nested `schema.timeline`.
166
+ - `ListView` resolved it out of `options.timeline` but not out of the
167
+ spec-canonical `schema.timeline` — including in the capability gate, so such a
168
+ view could fail to offer the Timeline option at all.
169
+
170
+ So a view authored as `timeline: { dateField: 'start_date' }` — the spec nesting
171
+ with the legacy key — fell through to the caller's default (`created_at` /
172
+ `due_date`). That field is normally absent from the `$select` projection, so
173
+ every record came back without it and the timeline rendered all of them under
174
+ **No date** — while the configured date was sitting in the row untouched. That
175
+ also explains why widening the view's projection changed nothing: the projection
176
+ already carried the right field; the renderer was reading a different one.
177
+
178
+ Both read-sites now resolve the alias in the same precedence position they
179
+ already use for `options.timeline.dateField`. The spec key still wins wherever
180
+ both appear. Observable rendering change (records move out of "No date" into
181
+ real date buckets), hence `minor`.
182
+
183
+ ### Patch Changes
184
+
185
+ - 335041c: Stop declaring 13 `@object-ui/core` symbols under names `@objectstack/spec` owns
186
+ (objectui#3158, objectstack#4115 batch 4).
187
+
188
+ **Breaking for importers of `@object-ui/core`** — seven exported names changed,
189
+ because the spec exports the same name for a _different_ thing:
190
+
191
+ | was | now | what the spec's same-named export actually is |
192
+ | :----------------------- | :-------------------------------- | :--------------------------------------------------------------------------- |
193
+ | `ChartSeries` | `ChartSeriesBinding` | the authored dataset-binding descriptor (a measure `name`, no `data`) |
194
+ | `ActionHandler` | `ActionRunnerHandler` | the SERVER-side objectql handler, `(ctx) => unknown` |
195
+ | `PluginDefinition` | `RegistryPluginDefinition` | the platform PACKAGE manifest (`id`/`slug`/`staticPath`/install hooks) |
196
+ | `ValidationError` | `SchemaNodeValidationError` | plugin-manifest validation, keyed by `field`, no severity |
197
+ | `ValidationResult` | `SchemaNodeValidationResult` | ditto, with both arrays optional |
198
+ | `defineView` | `defineSystemView` | the VIEW-DOCUMENT factory: parses a `ViewSchema`, returns a validated `View` |
199
+ | `resolveCrudAffordances` | `resolveEffectiveCrudAffordances` | the object-level affordance matrix, with no notion of server API operations |
200
+
201
+ The other six keep their names and are now **imported from the spec** instead of
202
+ re-declared: `StyleMap`, `ResponsiveStyles` (ADR-0065), `RowHeight`,
203
+ `CONTEXT_TOKENS`, `CrudAffordances`, `RowCrudPredicates`.
204
+
205
+ **The copies were live misdescriptions, not just duplicates.** Three said so in
206
+ their own comments:
207
+
208
+ - `CONTEXT_TOKENS` carried a note that the duplication was "temporary until the
209
+ next coordinated release… because the installed `@objectstack/spec` predates
210
+ that export". The installed spec (17.0.0-rc.0) exports it, and the copy was
211
+ byte-identical — so it passed every value comparison and every behavioural
212
+ test for the whole interval in which its stated reason was false.
213
+ - `RowHeight` advertised itself as "the spec's `RowHeightSchema` vocabulary"
214
+ while being a hand-written union. It happened to be correct; nothing would
215
+ have caught the day it stopped being.
216
+ - `managedBy.ts` described itself as a "UI-side mirror of the framework's
217
+ `resolveCrudAffordances()`" and carried its own `DEFAULTS` table — a
218
+ line-for-line copy of the spec's `CRUD_AFFORDANCE_DEFAULTS`, plus a copy of
219
+ its override parser.
220
+
221
+ `resolveEffectiveCrudAffordances` now **delegates** the bucket/`userActions` half
222
+ to the spec's `resolveCrudAffordances()`, so the bucket table has exactly one
223
+ definition on the platform. What stays objectui's is the part the spec has no
224
+ notion of: intersecting that matrix with the server-resolved effective API
225
+ operation set (#3391), so the UI never offers a button the server would 405 —
226
+ and the name now says that instead of claiming to be the spec's function.
227
+
228
+ Deriving `RowCrudPredicates` also **tightens** it: the local copy typed
229
+ `visibleWhen`/`disabledWhen` as `unknown`, where the spec types them as
230
+ `Expression | ExpressionInput`. That was imprecision, not a deliberate dialect.
231
+
232
+ - 5eaa861: `list-view` and `embeddable-form` get a data source on the registry path — their required `objectName` was binding to nothing (#3144).
233
+
234
+ `SchemaRenderer` puts the data source on `SchemaRendererContext` and **never** injects it into
235
+ component props. A component that reads `props.dataSource` therefore needs its registration to
236
+ bridge the two. `object-form`, `object-kanban` and `object-calendar` each register a small
237
+ renderer that does exactly that. These two did not:
238
+
239
+ - `list-view` (and its `view:list` alias) registered the bare `ListView`, which reads
240
+ `props.dataSource` — so its `getObjectSchema` effect returned immediately, nothing was ever
241
+ fetched, and it rendered the `empty-state` "Nothing here".
242
+ - `embeddable-form`'s renderer was `({ schema }) => <EmbeddableForm config={schema} />`, dropping
243
+ the context entirely — so the read-only source it derives for its inner `ObjectForm` was never
244
+ built, and its submit path (`if (dataSource) await dataSource.create(...)`) had nothing to call.
245
+
246
+ Both declare `objectName` **required** in their registry `inputs`. A binding the protocol obliges
247
+ an author to supply, that nothing on that path can consume, is objectstack#4413's shape one layer
248
+ up — and the reason it went unnoticed is that the console never takes this path: it reaches
249
+ ListView through `ObjectView`'s `renderListView` render-prop, which passes a data source itself.
250
+ Broken on the registry/SDUI path, which is the path `sdui.manifest.json` describes and a
251
+ `kind:'react'` page walks.
252
+
253
+ Found by `apps/console/src/__tests__/public-block-binding-reach.test.tsx` (objectstack#4472), not
254
+ by hand — that suite mounts every public block declaring an `objectName` under a recording
255
+ `dataSource` and asserts the binding arrives. Its ledger carried these two as named debt; with the
256
+ bridge in place the ledger's both-directions assertion **failed until the entries were deleted**,
257
+ which is the mechanism working as designed. Only `record:related_list` remains, and legitimately
258
+ (it needs a parent record id from `RecordContext` before it may fetch).
259
+
260
+ An explicit `dataSource` prop still wins, so hosts passing their own are unaffected, and
261
+ `ListViewRenderer` forwards refs so `ListViewHandle` still works through the registry.
262
+
3
263
  ## 17.1.0
4
264
 
5
265
  ### Minor Changes
@@ -136,8 +136,11 @@ export declare function convertFilterGroupToAST(group: FilterGroup): any[];
136
136
  * @param scope Extra top-level scope (the host predicate scope) bound
137
137
  * alongside the row, so `features.*` / `current_user.*`
138
138
  * conditions resolve as they do on grid rows / kanban cards.
139
+ * @param fields The object's field definitions, so a rule comparing a relation
140
+ * field sees the stored foreign key rather than the record
141
+ * `$expand` substituted for it (see `toPredicateRecord`).
139
142
  */
140
- export declare function evaluateConditionalFormatting(record: Record<string, unknown>, rules?: ListViewSchema['conditionalFormatting'], scope?: Record<string, unknown>): React.CSSProperties;
143
+ export declare function evaluateConditionalFormatting(record: Record<string, unknown>, rules?: ListViewSchema['conditionalFormatting'], scope?: Record<string, unknown>, fields?: unknown): React.CSSProperties;
141
144
  /**
142
145
  * Imperative handle exposed by ListView via React.forwardRef.
143
146
  * Allows parent components to trigger a data refresh programmatically.
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../src/ListView.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAwB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAKhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxC,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IACnC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAClD,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,4EAA4E;IAC5E,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7F,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACvD,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACxE,gFAAgF;IAChF,4BAA4B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;IACtG;;;;;OAKG;IACH,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,6FAA6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,UAiCrC;AAKD;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CA4BhE;AAED;;;GAGG;AACH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,CAqBzD;AAMD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAU9F;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CAKtD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,OAAO,EACnB,cAAc,EAAE,WAAW,EAC3B,oBAAoB,EAAE,GAAG,EAAE,GAC1B,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CASzC;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,CA0BjE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,CAAC,EAAE,cAAc,CAAC,uBAAuB,CAAC,EAC/C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,KAAK,CAAC,aAAa,CAErB;AAmID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,QAAQ,mGA82EnB,CAAC"}
1
+ {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../src/ListView.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectGallery.d.ts","sourceRoot":"","sources":["../src/ObjectGallery.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAIrF,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAI5F,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,gDAAgD;QAChD,UAAU,CAAC,EAAE,oBAAoB,CAAC;QAClC,mDAAmD;QACnD,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,iDAAiD;QACjD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iDAAiD;QACjD,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAC1E,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxD,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC1D;AAuJD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA2XtD,CAAC"}
1
+ {"version":3,"file":"ObjectGallery.d.ts","sourceRoot":"","sources":["../src/ObjectGallery.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAIrF,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAI5F,MAAM,WAAW,kBAAkB;IAC/B,MAAM,EAAE;QACJ,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,aAAa,CAAC;QACxB,gDAAgD;QAChD,UAAU,CAAC,EAAE,oBAAoB,CAAC;QAClC,mDAAmD;QACnD,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,iDAAiD;QACjD,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,iDAAiD;QACjD,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IAC1E,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACxD,uEAAuE;IACvE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC1D;AAyLD,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA+XtD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserFilters.d.ts","sourceRoot":"","sources":["../src/UserFilters.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAsCvD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAMpG,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,wDAAwD;IACxD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,yCAAyC;IACzC,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACrE;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;CAC7F;AA6CD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,SAAS,EACT,IAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,gBAAgB,4BA+ClB"}
1
+ {"version":3,"file":"UserFilters.d.ts","sourceRoot":"","sources":["../src/UserFilters.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAuCvD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,GAAG,OAAO,GAAG,MAAM,CAMpG,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,wDAAwD;IACxD,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,yCAAyC;IACzC,cAAc,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACzC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IACrE;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC;CAC7F;AA6ED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,SAAS,EACT,IAAS,EACT,cAAc,EACd,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,gBAAgB,4BA+ClB"}
@@ -1,3 +1,4 @@
1
+ import { ViewTabSchema } from '@objectstack/spec/ui';
1
2
  /**
2
3
  * ObjectUI
3
4
  * Copyright (c) 2024-present ObjectStack Inc.
@@ -6,17 +7,29 @@
6
7
  * LICENSE file in the root directory of this source tree.
7
8
  */
8
9
  import * as React from 'react';
9
- export interface ViewTab {
10
- name: string;
11
- label: string;
12
- icon?: string;
13
- view?: string;
14
- filter?: any;
15
- order?: number;
16
- pinned?: boolean;
17
- isDefault?: boolean;
18
- visible?: string | boolean;
19
- }
10
+ /**
11
+ * One tab in a multi-tab list view — derived from the spec's `ViewTabSchema`
12
+ * (objectui#3160, objectstack#4115 ledger batch 6).
13
+ *
14
+ * Until then this was a hand copy wearing the spec's own name, drifted in three
15
+ * places: `label` was REQUIRED (the spec makes it optional — `name` is the
16
+ * identifier), `filter` was `any` (the spec models `ViewFilterRule[]`, so a
17
+ * mistyped operator was unreportable), and `visible` accepted `string | boolean`
18
+ * — a renderer-side tolerance for a shape the spec never emits, which is the
19
+ * lenient fallback AGENTS.md #12 bans. `@object-ui/types` has re-exported the
20
+ * spec's `ViewTab` under that name all along, so the fork and the real thing
21
+ * were already importable side by side.
22
+ *
23
+ * Bound to the AUTHORING (`input`) side, not `z.infer`: `pinned` / `isDefault` /
24
+ * `visible` all carry `.default()`s, so the PARSED type makes three keys
25
+ * required and a host handing this component stored view metadata
26
+ * (`{ name: 'open' }`) could not express it. The rule recorded on
27
+ * objectstack#4115 — writing this metadata → input, reading what has already
28
+ * been parsed → `z.infer`. Reached through the schema's own `_zod` carrier
29
+ * rather than `z.input` so this package takes no zod dependency; same technique
30
+ * and fuller rationale in `packages/react/src/spec-input.ts`.
31
+ */
32
+ export type ViewTab = (typeof ViewTabSchema)['_zod']['input'];
20
33
  export interface TabBarProps {
21
34
  tabs: ViewTab[];
22
35
  activeTab?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../src/components/TabBar.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAyBD;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4DxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAqE9C,CAAC"}
1
+ {"version":3,"file":"TabBar.d.ts","sourceRoot":"","sources":["../../src/components/TabBar.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAU/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+BD;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA4DxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAqE9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvG,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAE,QAAQ,EAA2C,MAAM,YAAY,CAAC;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvG,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}