@object-ui/plugin-list 17.3.0 → 17.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/README.md CHANGED
@@ -180,6 +180,42 @@ interface ListViewSchema {
180
180
  }
181
181
  ```
182
182
 
183
+ ## Page binding — `dataSource` (referencing a saved view by name)
184
+
185
+ On a metadata page, a `list-view` component can bind its data through the spec's
186
+ per-element data source (`PageComponentSchema.dataSource`,
187
+ `ElementDataSourceSchema`) instead of spelling `objectName` and inlining the
188
+ view's configuration:
189
+
190
+ ```json
191
+ {
192
+ "type": "list-view",
193
+ "dataSource": { "object": "account", "view": "hot", "limit": 10 }
194
+ }
195
+ ```
196
+
197
+ `view` names a **saved view** of that object — either one embedded in the object
198
+ definition (`listViews`) or one created in the UI (the metadata overlay an
199
+ adapter serves from `listViews()`). Its `columns`, `filter`, `sort`, page size
200
+ and view kind are applied to the render, so a page no longer has to keep a second
201
+ copy of a view's configuration in sync with the view itself. Both the short key
202
+ (`hot`) and the qualified id (`account.hot`) resolve.
203
+
204
+ **Precedence.** `dataSource.*` keys are authoritative — the author wrote them on
205
+ this placement, and they beat the component's own same-named key. Values that
206
+ come from the named view are a *baseline*: a key written on the component itself
207
+ is more specific than the view it points at, so the component's key wins
208
+ (an empty `columns: []` counts as "not authored"). `filter` is the exception —
209
+ the spec calls `dataSource.filter` "additional filter criteria", so the
210
+ component's filter, the view's filter and the binding's filter all AND together.
211
+ A binding can narrow what the view selects, never widen it.
212
+
213
+ **An unresolvable `view` is an error, not an empty table.** If the named view
214
+ does not exist, the block renders a configuration error listing the object's
215
+ actual views, and issues no query. It deliberately does not fall back to the
216
+ object's default view: that would turn a typo into a silently *wider* answer on a
217
+ page that still looks like it works.
218
+
183
219
  ## Sorting (and why relational columns are not offered)
184
220
 
185
221
  The toolbar sort becomes a server `$orderby` on the **flat field name**, so the
@@ -191,30 +227,40 @@ user's side). The server cannot order by the related name without a join, and
191
227
  `objectstack#4256` settled that it will not add one.
192
228
 
193
229
  So the sort picker withholds relational fields and says so. To sort by a related
194
- record's name, denormalize it onto this object with a **formula field** and sort
195
- that column like any other text column. A relational field that the view's
196
- CURRENT sort already uses stays listed, labelled `(by ID)`, so existing view
197
- metadata round-trips instead of silently losing its sort.
198
-
199
- Column-header sorting inside the grid is unaffected: it is client-side over the
200
- rows already loaded, where the label the cell shows IS available, so it orders by
201
- that label (see `getSortValue` in `@object-ui/core`).
230
+ record's name, denormalize that name onto this object as a **stored field,
231
+ written when the source changes**, then sort by that field — the remedy the
232
+ server's own refusal prescribes, in the same words the sort panel's hint uses.
233
+
234
+ **Not a formula field.** A formula value is computed on read, so no driver
235
+ materializes a column behind it, and since `objectstack#6994` the server answers
236
+ a sort that names one with a hard `400 INVALID_SORT` (before that it degraded
237
+ silently: the rows came back in an arbitrary order under a `200`, `asc` and
238
+ `desc` identical). The picker withholds formula fields for the same reason
239
+ (`objectui#4243`), so there is no formula column here to sort "like any other
240
+ text column" — the column you sort is the stored one the denormalization writes.
241
+
242
+ A field the view's CURRENT sort already uses stays listed under both rules —
243
+ relational ones labelled `(by ID)` — so existing view metadata round-trips
244
+ instead of silently losing its sort, and a sort the server would refuse can
245
+ still be edited away in the picker that otherwise hides its field.
246
+
247
+ Column-header sorting inside the grid follows the **same two rules**, because a
248
+ header click is a server `$orderby` as well whenever the grid is showing one
249
+ window of a larger collection (`objectui#3106`) — not a client-side reorder of
250
+ the loaded rows. So on that path a relational or formula column carries no
251
+ clickable header either (`objectui#3950`); offering one would have been the same
252
+ illusion through a different control.
253
+
254
+ Where the sort really does stay in the browser — inline `data`, or the grouped
255
+ view, which holds every row it groups — both kinds of header stay live and order
256
+ by the value the cell shows: the resolved label for a relational column, the
257
+ server-hydrated result for a formula one (see `getSortValue` in
258
+ `@object-ui/core`).
202
259
 
203
260
  ## View Persistence
204
261
 
205
262
  The ListView automatically persists the user's view type preference in localStorage using the key `listview-{objectName}-view`.
206
263
 
207
- <!-- release-metadata:v3.3.0 -->
208
-
209
- ## Compatibility
210
-
211
- - **React:** 18.x or 19.x
212
- - **Node.js:** ≥ 18
213
- - **TypeScript:** ≥ 5.0 (strict mode)
214
- - **`@objectstack/spec`:** ^3.3.0
215
- - **`@objectstack/client`:** ^3.3.0
216
- - **Tailwind CSS:** ≥ 3.4 (for packages with UI)
217
-
218
264
  ## Links
219
265
 
220
266
  - 📚 [Documentation](https://www.objectui.org/docs/plugins/plugin-list)
@@ -9,9 +9,77 @@ import { ListViewSchema } from '@object-ui/types';
9
9
  * LICENSE file in the root directory of this source tree.
10
10
  */
11
11
  import * as React from 'react';
12
+ /**
13
+ * The `case 'map'` branch below builds an `object-map` schema by flattening
14
+ * `schema.options.map`'s CONTENTS to the top level. Whitelisted to these keys —
15
+ * `ObjectMapConfigSchema`'s shape minus `style` — rather than the whole bag:
16
+ * `style` is ALSO `BaseSchema.style` (inline CSS, legal on every node), and
17
+ * spreading the raw `map` block collapsed the two namespaces onto one key
18
+ * (objectui#5177).
19
+ *
20
+ * HAND-LISTED, not derived at runtime — deliberately, and only here (`plugin-
21
+ * map`'s own `FLAT_MAP_CONFIG_KEYS` in `ObjectMap.tsx` DOES derive from
22
+ * `ObjectMapConfigSchema.shape`, and should stay that way): this file is
23
+ * reachable from `examples/console-starter`'s own `src/`, so it is part of the
24
+ * import graph `vite-alias-closure.test.ts` walks. That walker resolves a bare
25
+ * `@object-ui/*` specifier with plain `index.<ext>` conventions and cannot find
26
+ * `@object-ui/types/zod`'s actual barrel file (`zod/index.zod.ts` — a
27
+ * non-standard name) — a REAL runtime import of it here reproducibly fails
28
+ * that gate (measured on objectui#5177's first PR, PR #5231, CI run
29
+ * 32160288416), even though Vite's own alias table already resolves the
30
+ * specifier correctly (`examples/console-starter/vite.config.ts` has carried
31
+ * an explicit `@object-ui/types/zod` entry since PR #5156). `ObjectMap.tsx`
32
+ * gets away with the runtime import only because nothing in
33
+ * console-starter's graph reaches `@object-ui/plugin-map` today.
34
+ *
35
+ * Anti-drift is a TEST, not this comment: `ListView.mapFlatten.test.tsx` pins
36
+ * this exact list against `ObjectMapConfigSchema.shape` — imported only from
37
+ * that TEST file, which the alias-closure walker explicitly excludes from
38
+ * traversal — so a key added to or removed from the declaration still fails
39
+ * here, loudly and by name, without reintroducing the runtime edge that
40
+ * breaks the walker.
41
+ */
42
+ export declare const FLAT_MAP_CONFIG_KEYS: readonly ["latitudeField", "longitudeField", "locationField", "titleField", "descriptionField", "zoom", "center"];
43
+ /**
44
+ * The list view's props.
45
+ *
46
+ * ## Why there is no `[key: string]: any` here (objectui#4528)
47
+ *
48
+ * There used to be one, and it erased this entire interface. A string index
49
+ * signature puts `string` into `keyof Props`, so `'ref' extends keyof Props` is
50
+ * always true and React's `PropsWithoutRef` takes its `Omit` branch — and
51
+ * `Omit` over a type carrying a string index signature keeps ONLY the index
52
+ * signature. Every declared property below was dropped from the resolved type.
53
+ * Measured on the pre-fix source:
54
+ * `keyof React.ComponentProps< typeof ListView >` was `string | number`, and
55
+ * `React.ComponentProps< typeof ListView >['onRowClick']` was `any`, while this
56
+ * interface went on declaring `(record: Record< string, unknown >) => void`.
57
+ *
58
+ * The same trap, in `packages/components`, is objectui#4422 / PR #4438; this is
59
+ * the sweep of the two packages that issue left unswept.
60
+ *
61
+ * ## The props that were only ever reachable through it
62
+ *
63
+ * `ListView` reads several props it never declared, because the index signature
64
+ * was answering for them — `dataSource`, `onAddRecord`, `onBulkAction`,
65
+ * `onPageSizeChange` are read directly, and `onEdit` / `onDelete` /
66
+ * `onBulkDelete` ride the `{...props}` forward into the active view component
67
+ * (`ObjectGrid` declares all three). They are declared by name below, at the
68
+ * type each one actually lands on, rather than left to an index signature that
69
+ * types them `any` and erases everything around them.
70
+ */
12
71
  export interface ListViewProps {
13
72
  schema: ListViewSchema;
14
73
  className?: string;
74
+ /**
75
+ * Data-source adapter. Read directly (`dataSource.find`,
76
+ * `dataSource.getObjectSchema`, `dataSource.onMutation`) and forwarded to the
77
+ * active view component. Typed `any` deliberately: that is what it resolved
78
+ * to before objectui#4528, so declaring it changes what is DECLARED without
79
+ * changing what any call site is held to. Narrowing it to a real adapter type
80
+ * is a separate change with its own consumer sweep.
81
+ */
82
+ dataSource?: any;
15
83
  onViewChange?: (view: ViewType) => void;
16
84
  onFilterChange?: (filters: any) => void;
17
85
  onSortChange?: (sort: any) => void;
@@ -42,7 +110,21 @@ export interface ListViewProps {
42
110
  initialFilters?: FilterGroup;
43
111
  /** Initial search term to restore at mount (same one-shot semantics as `initialFilters`). */
44
112
  initialSearchTerm?: string;
45
- [key: string]: any;
113
+ /** Called when the user asks for a new record (toolbar "+ New" and the empty-state CTA). */
114
+ onAddRecord?: () => void;
115
+ /** Called with a non-delete bulk action key and the currently selected rows. */
116
+ onBulkAction?: (action: string, records: any[]) => void;
117
+ /** Called when the user picks a different page size in the pager. */
118
+ onPageSizeChange?: (pageSize: number) => void;
119
+ /**
120
+ * Row-level affordances forwarded to the active view component. `ObjectGrid`
121
+ * declares all three with exactly these signatures; they are named here so the
122
+ * hosts that pass them (`ObjectView`, `StudioDesignSurface`) are held to a
123
+ * contract instead of to an index signature.
124
+ */
125
+ onEdit?: (record: any) => void;
126
+ onDelete?: (record: any) => void;
127
+ onBulkDelete?: (records: any[]) => void;
46
128
  }
47
129
  /**
48
130
  * Filter-builder / view operator → filter-AST operator.
@@ -56,16 +138,34 @@ export interface ListViewProps {
56
138
  * Exported for that test. @internal
57
139
  */
58
140
  export declare function mapOperator(op: string): string;
141
+ /**
142
+ * Opt-in `FilterBuilder` operators the list toolbar offers — deliberately NONE
143
+ * (objectui#4736).
144
+ *
145
+ * `OPT_IN_OPERATORS` in `@object-ui/components` withholds the operator ids that
146
+ * only the MongoDB-style criteria dialect can carry. This toolbar persists into
147
+ * the other two, and into BOTH of them at once:
148
+ *
149
+ * - the array/triplet filter AST, via `mapOperator` above, for the live grid;
150
+ * - `ViewFilterRule[]`, via app-shell's `foldFilterGroupToSpecRules`, when the
151
+ * user saves the panel's group as a view.
152
+ *
153
+ * Neither vocabulary has a case-insensitive contains or an existence operator,
154
+ * so this surface opts into nothing. Named and passed explicitly rather than
155
+ * omitted at the call site: this constant is the handle
156
+ * `list-offered-operator-expressible-parity.test.ts` reads to compute what the
157
+ * toolbar actually offers, and an inline `extraOperators` added later would
158
+ * otherwise widen the dropdown without the parity test noticing.
159
+ *
160
+ * @internal exported for that test
161
+ */
162
+ export declare const LIST_VIEW_EXTRA_OPERATORS: readonly string[];
59
163
  /**
60
164
  * Normalize a single filter condition: convert `in`/not-in operators
61
165
  * into backend-compatible `or`/`and` of equality conditions.
62
166
  * E.g., ['status', 'in', ['a','b']] → ['or', ['status','=','a'], ['status','=','b']]
63
167
  */
64
168
  export declare function normalizeFilterCondition(condition: any[]): any[];
65
- /**
66
- * Format an action identifier string into a human-readable label.
67
- * e.g., 'send_email' → 'Send Email'
68
- */
69
169
  /**
70
170
  * Normalize a view's `sort` declaration to SortItem[]. @objectstack/spec
71
171
  * ListViewSchema.sort is `string | Array<{ field, order }>` — the TOP-LEVEL
@@ -92,6 +192,37 @@ export declare function resolveAddRecordPlacement(position: unknown): {
92
192
  top: boolean;
93
193
  bottom: boolean;
94
194
  };
195
+ /**
196
+ * The date axis a timeline view renders on.
197
+ *
198
+ * ONE resolution, consumed by both read-sites that decide the timeline's fate:
199
+ * the capability gate (may this view offer the Timeline visualization?) and the
200
+ * timeline render branch (which field does it bucket by?). Those two used to
201
+ * carry separate, unequal source lists, and the gate was the wider of the pair —
202
+ * it accepted `options.calendar.startDateField` as a timeline-resolvable axis
203
+ * while the render branch never read calendar config at all. A view that binds
204
+ * its dates under `calendar` therefore got the Timeline option offered and then
205
+ * bucketed every record into "No date" (objectui#3129), which is exactly the
206
+ * shape the report isolated: the same fields render fine in Calendar and Gantt.
207
+ *
208
+ * A calendar binding IS a legitimate timeline axis in this product, not a
209
+ * lenient fallback bolted on here: the capability gate has always said so, and
210
+ * `InterfaceListPage` derives a timeline's default binding from the very same
211
+ * `defaultCalendarFromObject` helper it uses for calendars. What was missing is
212
+ * that one of the two read-sites never honoured the promise the other made.
213
+ *
214
+ * Both nestings are read at each level, spec-canonical key first: the
215
+ * spec-authored `schema.timeline` / `schema.calendar` and the legacy
216
+ * `schema.options.*` twin that app-shell's object pages still emit. `dateField`
217
+ * is the pre-#2231 alias for `startDateField`.
218
+ *
219
+ * Exported for the regression suite, which pins each authoring shape.
220
+ */
221
+ export declare function resolveTimelineDateBinding(schema: any): {
222
+ startDateField?: string;
223
+ endDateField?: string;
224
+ titleField?: string;
225
+ };
95
226
  /**
96
227
  * Normalize an array of filter conditions, expanding `in`/`not in` operators
97
228
  * and ensuring consistent AST structure.
@@ -141,6 +272,7 @@ export declare function convertFilterGroupToAST(group: FilterGroup): any[];
141
272
  * `$expand` substituted for it (see `toPredicateRecord`).
142
273
  */
143
274
  export declare function evaluateConditionalFormatting(record: Record<string, unknown>, rules?: ListViewSchema['conditionalFormatting'], scope?: Record<string, unknown>, fields?: unknown): React.CSSProperties;
275
+ export declare const LIST_DEFAULT_TRANSLATIONS: Record<string, string>;
144
276
  /**
145
277
  * Imperative handle exposed by ListView via React.forwardRef.
146
278
  * Allows parent components to trigger a data refresh programmatically.
@@ -157,5 +289,5 @@ export interface ListViewHandle {
157
289
  /** Force the ListView to re-fetch data from the DataSource */
158
290
  refresh(): void;
159
291
  }
160
- export declare const ListView: React.ForwardRefExoticComponent<Omit<ListViewProps, "ref"> & React.RefAttributes<ListViewHandle>>;
292
+ export declare const ListView: React.ForwardRefExoticComponent<ListViewProps & React.RefAttributes<ListViewHandle>>;
161
293
  //# sourceMappingURL=ListView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListView.d.ts","sourceRoot":"","sources":["../src/ListView.tsx"],"names":[],"mappings":"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"}
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;AAEzD,OAAO,EAAwB,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAMhE,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,kBAAkB,CAAC;AAgBxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,oBAAoB,mHAQqC,CAAC;AA6CvE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,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,4FAA4F;IAC5F,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gFAAgF;IAChF,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACxD,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACjC,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CACzC;AAKD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,UAwCrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,MAAM,EAAO,CAAC;AAK/D;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,CA4BhE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,EAAE,CAqBzD;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,GAAG;IAAE,GAAG,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAU9F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,GAAG,GAAG;IACvD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAoBA;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,CAqDjE;AAED;;;;;;;;;;;;;;;;;;GAkBG;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,EAC/B,MAAM,CAAC,EAAE,OAAO,GACf,KAAK,CAAC,aAAa,CAErB;AAcD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2H5D,CAAC;AA2BF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,eAAO,MAAM,QAAQ,sFAy0FnB,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { default as React } from 'react';
2
+ import { ListViewHandle, ListViewProps } from './ListView';
3
+ /**
4
+ * Registry entry point for `<ListView>` — two bridges in one component.
5
+ *
6
+ * ## 1. The data-source ADAPTER (#3144)
7
+ *
8
+ * `ListView` reads `props.dataSource` (the injected adapter), and
9
+ * `SchemaRenderer` never passes it — it only puts the data source on
10
+ * `SchemaRendererContext`. Registering the component bare meant that on the
11
+ * registry/SDUI path (a metadata page, a `kind:'react'` page, the designer
12
+ * preview) it received no data source at all: its `getObjectSchema` effect
13
+ * returned immediately, nothing was ever fetched, and it rendered the "Nothing
14
+ * here" empty state — while its registry `inputs` declared `objectName`
15
+ * **required**. The app never showed this because the console reaches ListView
16
+ * through `ObjectView`'s `renderListView` render-prop, which passes a data
17
+ * source itself. That is the objectstack#4413 shape (a declared binding nothing
18
+ * can consume), caught by
19
+ * `apps/console/src/__tests__/public-block-binding-reach.test.tsx` rather than by
20
+ * hand. `object-form`, `object-kanban` and `object-calendar` carry the same
21
+ * one-line bridge.
22
+ *
23
+ * An explicit `dataSource` prop still wins — hosts that pass their own (as
24
+ * `ObjectView` does) are unaffected. `useContext` rather than
25
+ * `useSchemaContext()` because the latter throws outside a provider, and a bare
26
+ * `<ListView>` with a host-supplied data source must keep working.
27
+ *
28
+ * ## 2. The spec's per-element data BINDING (objectstack#5576)
29
+ *
30
+ * `PageComponentSchema.dataSource` — `{ object, view?, filter?, sort?, limit? }` —
31
+ * is how a page component declares what to query. It was published and unread:
32
+ * `resolveElementDataSource` dropped `view`, had no caller outside its own test,
33
+ * and nothing mapped `object` onto `objectName`. Worse, the binding and the
34
+ * adapter above collide by NAME, so a page that wrote the binding the spec
35
+ * documents got the plain `{ object, view }` object where the adapter belongs:
36
+ * the first `dataSource.find(…)` threw `dataSource.find is not a function` and
37
+ * the list rendered **"Couldn't load records"**. Three `list-view` components on
38
+ * one home page, the two without `dataSource` fine and the spec-compliant one
39
+ * broken, is the single-variable reproduction in the issue.
40
+ *
41
+ * `SchemaRenderer` no longer spreads the schema's `dataSource` as a prop, which
42
+ * removes the collision at its source. This component completes the other half:
43
+ * it maps the binding onto the props `ListView` actually reads, resolving a named
44
+ * saved view through `ElementDataSourceGate`.
45
+ *
46
+ * ### Where the precedence table lives (objectui#4038)
47
+ *
48
+ * It is NOT here. objectstack#5576 landed this block's own ~45-line copy of
49
+ * "binding overrides the component key / a view is only a baseline / `filter`
50
+ * AND-combines / an empty `columns` counts as unauthored / the row cap lands on
51
+ * `pagination.pageSize` / `viewType` only when undeclared", and objectstack#6953
52
+ * then lifted that same table into `@object-ui/react` when the other eight
53
+ * object-bound blocks needed it. Two copies of one table is how the spec's
54
+ * "*additional* filter criteria" quietly becomes two dialects — the next person
55
+ * to change the rules changes one side. So the table now lives ONCE, in
56
+ * {@link ElementDataSourceGate}, and this block contributes only the part that is
57
+ * genuinely its own: {@link LIST_VIEW_DATA_SOURCE}, the names of the keys it
58
+ * reads. The behaviour is unchanged in both directions — that objectstack#5576's
59
+ * whole suite passes here untouched is the acceptance criterion of the
60
+ * convergence, not a happy accident.
61
+ *
62
+ * An unresolvable `view` still fails loudly (the gate renders the configuration
63
+ * error rather than falling back to the object's default view): silently widening
64
+ * a named view to "all records" is the failure class the binding exists to
65
+ * remove, and the one an AI-authored page hides best.
66
+ */
67
+ declare const ListViewBlock: React.ForwardRefExoticComponent<ListViewProps & React.RefAttributes<ListViewHandle>>;
68
+ export { ListViewBlock };
69
+ //# sourceMappingURL=ListViewBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListViewBlock.d.ts","sourceRoot":"","sources":["../src/ListViewBlock.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAqB,MAAM,OAAO,CAAC;AAO1C,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAqB/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,QAAA,MAAM,aAAa,sFAwBjB,CAAC;AAGH,OAAO,EAAE,aAAa,EAAE,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;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
+ {"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;AAmDvD;;;;;;;;;;;;;;;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 +1 @@
1
- {"version":3,"file":"ViewSwitcher.d.ts","sourceRoot":"","sources":["../src/ViewSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0BD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyG5D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAsDpD,CAAC"}
1
+ {"version":3,"file":"ViewSwitcher.d.ts","sourceRoot":"","sources":["../src/ViewSwitcher.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAiB/B,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,GACV,UAAU,GACV,OAAO,GACP,KAAK,GACL,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC5B,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA0GD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0G5D,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwDpD,CAAC"}
@@ -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;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
+ {"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,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;AAkED;;;;GAIG;AACH,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA6DxC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAsE9C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSettingsPopover.d.ts","sourceRoot":"","sources":["../../src/components/ViewSettingsPopover.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IACvC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAExC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAChF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAElG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAE9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEjD,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,qBAkNlE"}
1
+ {"version":3,"file":"ViewSettingsPopover.d.ts","sourceRoot":"","sources":["../../src/components/ViewSettingsPopover.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;IAC7C,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;IACvC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,GAAG,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAExC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IAChF,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,SAAS,KAAK,IAAI,CAAC;IAElG,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAE9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAEjD,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACzC;AA8CD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,qBAwNlE"}
package/dist/index.d.ts CHANGED
@@ -1,13 +1,15 @@
1
1
  import { ListView } from './ListView';
2
+ import { ListViewBlock } from './ListViewBlock';
2
3
  import { ViewSwitcher } from './ViewSwitcher';
3
4
  import { ObjectGallery } from './ObjectGallery';
4
- export { ListView, ViewSwitcher, ObjectGallery };
5
+ export { ListView, ListViewBlock, ViewSwitcher, ObjectGallery };
5
6
  export { ViewSwitcherDropdown } from './ViewSwitcher';
6
7
  export { TabBar, TabBarSelect } from './components/TabBar';
7
8
  export type { TabBarProps, ViewTab } from './components/TabBar';
8
9
  export { UserFilters } from './UserFilters';
9
10
  export type { UserFiltersProps } from './UserFilters';
10
11
  export { evaluateConditionalFormatting, normalizeFilterCondition, normalizeFilters } from './ListView';
12
+ export { LIST_DEFAULT_TRANSLATIONS } from './ListView';
11
13
  export type { ListViewProps, ListViewHandle } from './ListView';
12
14
  export type { ObjectGalleryProps } from './ObjectGallery';
13
15
  export type { ViewSwitcherProps, ViewType } from './ViewSwitcher';
@@ -1 +1 @@
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"}
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,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAChE,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;AAGvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACvD,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"}