@contember/bindx-react 0.1.46 → 0.1.48

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.
Files changed (41) hide show
  1. package/dist/hooks/ItemAccessorCache.d.ts +36 -0
  2. package/dist/hooks/ItemAccessorCache.d.ts.map +1 -0
  3. package/dist/hooks/index.d.ts +1 -0
  4. package/dist/hooks/index.d.ts.map +1 -1
  5. package/dist/hooks/useEntityCount.d.ts.map +1 -1
  6. package/dist/hooks/useEntityList.d.ts.map +1 -1
  7. package/dist/hooks/useFields.d.ts +25 -0
  8. package/dist/hooks/useFields.d.ts.map +1 -0
  9. package/dist/index.d.ts +2 -2
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/jsx/analyzer.d.ts.map +1 -1
  12. package/dist/jsx/componentBuilder.d.ts +3 -1
  13. package/dist/jsx/componentBuilder.d.ts.map +1 -1
  14. package/dist/jsx/componentBuilder.types.d.ts +44 -8
  15. package/dist/jsx/componentBuilder.types.d.ts.map +1 -1
  16. package/dist/jsx/componentBuilderCompat.d.ts.map +1 -1
  17. package/dist/jsx/componentFactory.d.ts +1 -1
  18. package/dist/jsx/componentFactory.d.ts.map +1 -1
  19. package/dist/jsx/components/Field.d.ts.map +1 -1
  20. package/dist/jsx/components/If.d.ts.map +1 -1
  21. package/dist/jsx/components/Switch.d.ts.map +1 -1
  22. package/dist/jsx/standaloneCreateComponent.d.ts.map +1 -1
  23. package/package.json +3 -3
  24. package/src/hooks/ItemAccessorCache.ts +71 -0
  25. package/src/hooks/index.ts +1 -0
  26. package/src/hooks/useEntity.ts +48 -22
  27. package/src/hooks/useEntityCount.ts +0 -1
  28. package/src/hooks/useEntityList.ts +44 -16
  29. package/src/hooks/useFields.ts +118 -0
  30. package/src/index.ts +1 -1
  31. package/src/jsx/analyzer.ts +32 -7
  32. package/src/jsx/componentBuilder.ts +19 -2
  33. package/src/jsx/componentBuilder.types.ts +62 -8
  34. package/src/jsx/componentBuilderCompat.ts +0 -2
  35. package/src/jsx/componentFactory.ts +109 -42
  36. package/src/jsx/components/Attribute.tsx +2 -2
  37. package/src/jsx/components/Entity.tsx +12 -12
  38. package/src/jsx/components/Field.tsx +2 -4
  39. package/src/jsx/components/If.tsx +6 -0
  40. package/src/jsx/components/Switch.tsx +20 -9
  41. package/src/jsx/standaloneCreateComponent.ts +0 -2
@@ -0,0 +1,36 @@
1
+ import type { EntityAccessor } from '@contember/bindx';
2
+ import { EntityHandle } from '@contember/bindx';
3
+ /**
4
+ * Per-id cache of the accessors `useEntityList` hands out.
5
+ *
6
+ * An EntityHandle is a stateless live view over the store, so one handle — and one proxy over it —
7
+ * serves an id for the whole life of the list. Identity therefore means identity and nothing else:
8
+ * it is stable across every change to the entity, which is what lets identity-keyed consumers
9
+ * (`React.memo` rows, `useMemo`) skip work. Change delivery is the subscription's job — a memoized
10
+ * consumer must subscribe via `<Field>` / `useField` / `useAccessor` to observe changes.
11
+ *
12
+ * Relation and field notifications propagate through live parent edges, so subscribers on a root
13
+ * item still update when one of its descendants changes.
14
+ *
15
+ * The cache belongs to one hook instance and is thrown away whenever a handle construction input
16
+ * changes; handles validate field access against the selection they were built with.
17
+ */
18
+ export declare class ItemAccessorCache {
19
+ private readonly createHandle;
20
+ private readonly resolveId;
21
+ private readonly entries;
22
+ /**
23
+ * @param createHandle builds the handle for a canonical id
24
+ * @param resolveId maps an id to its canonical form — a temp id follows its
25
+ * temp→persisted rekey, so the handle (and the `id` it reports) is minted under the
26
+ * server id and the dead temp key is evicted. Mirrors HasManyListHandle.resolveItemKey.
27
+ */
28
+ constructor(createHandle: (id: string) => EntityHandle<object>, resolveId: (id: string) => string);
29
+ /** Rebuilds the accessor array; ids no longer listed are evicted so the cache stays bounded. */
30
+ build(items: ReadonlyArray<{
31
+ id: string;
32
+ }>): Array<EntityAccessor<object>>;
33
+ private canonicalizeEntries;
34
+ private resolve;
35
+ }
36
+ //# sourceMappingURL=ItemAccessorCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ItemAccessorCache.d.ts","sourceRoot":"","sources":["../../src/hooks/ItemAccessorCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C;;;;;;;;;;;;;;GAcG;AACH,qBAAa,iBAAiB;IAU5B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAV3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4C;IAEpE;;;;;OAKG;gBAEe,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,YAAY,CAAC,MAAM,CAAC,EAClD,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM;IAGnD,gGAAgG;IAChG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAoB1E,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,OAAO;CAQf"}
@@ -9,6 +9,7 @@ export { useOnEvent, useOnEntityEvent, useOnFieldEvent, useIntercept, useInterce
9
9
  export { useEntityBeforePersist } from './useEntityBeforePersist.js';
10
10
  export { useAccessor } from './useAccessor.js';
11
11
  export { useField } from './useField.js';
12
+ export { useFields } from './useFields.js';
12
13
  export { useHasMany } from './useHasMany.js';
13
14
  export { useHasOne } from './useHasOne.js';
14
15
  export { useEntityErrors, type EntityErrorsState, } from './useErrors.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACvB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACnB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACN,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACxB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACN,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GACzB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACN,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAE3D,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EACN,eAAe,EACf,KAAK,iBAAiB,GACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACN,sBAAsB,EACtB,KAAK,sBAAsB,GAC3B,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,GACvB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,cAAc,GACnB,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACpB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACN,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACxB,MAAM,oBAAoB,CAAA;AAE3B,OAAO,EACN,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GACzB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EACN,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,6BAA6B,CAAA;AAEpC,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAE3D,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GACjB,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EACN,eAAe,EACf,KAAK,iBAAiB,GACtB,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,GACtB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACN,sBAAsB,EACtB,KAAK,sBAAsB,GAC3B,MAAM,6BAA6B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityCount.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityCount.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAOjD,MAAM,WAAW,qBAAqB;IACrC,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACpC,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,4EAA4E;IAC5E,OAAO,IAAI,IAAI,CAAA;CACf;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAE7B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,GAAE,qBAA0B,GACjC,oBAAoB,CAoDtB"}
1
+ {"version":3,"file":"useEntityCount.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityCount.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAOjD,MAAM,WAAW,qBAAqB;IACrC,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,oBAAoB;IACpC,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,4EAA4E;IAC5E,OAAO,IAAI,IAAI,CAAA;CACf;AAMD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,EACtB,OAAO,GAAE,qBAA0B,GACjC,oBAAoB,CAoDtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useEntityList.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityList.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useEntityList.d.ts","sourceRoot":"","sources":["../../src/hooks/useEntityList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type FieldAccessor, type FieldRef } from '@contember/bindx';
2
+ type FieldAccessorFor<TRef> = TRef extends FieldRef<infer TValue> ? FieldAccessor<TValue> : TRef extends null ? null : never;
3
+ type FieldRefFor<TRef> = TRef extends FieldRef<infer TValue> ? FieldRef<TValue> : TRef extends null ? null : never;
4
+ type FieldAccessorTuple<TRefs extends readonly unknown[]> = {
5
+ readonly [TIndex in keyof TRefs]: FieldAccessorFor<TRefs[TIndex]>;
6
+ };
7
+ type FieldRefTuple<TRefs extends readonly unknown[]> = {
8
+ readonly [TIndex in keyof TRefs]: FieldRefFor<TRefs[TIndex]>;
9
+ };
10
+ /** Internal subscription path for metadata-bearing refs of any kind. */
11
+ export declare function useRefSubscription(refs: readonly unknown[]): readonly unknown[];
12
+ /**
13
+ * Subscribes to every entity behind `refs` with a single hook, so the hook count stays
14
+ * constant no matter how many refs are passed. Use it wherever the number of refs is
15
+ * driven by data or by children (`<Switch>` cases, condition DSL fields) — calling
16
+ * {@link useField} in a loop breaks the rules of hooks the moment the count changes.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * const accessors = useFields([article.title, article.publishedAt])
21
+ * ```
22
+ */
23
+ export declare function useFields<const TRefs extends readonly unknown[]>(refs: TRefs & FieldRefTuple<TRefs>): FieldAccessorTuple<TRefs>;
24
+ export {};
25
+ //# sourceMappingURL=useFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFields.d.ts","sourceRoot":"","sources":["../../src/hooks/useFields.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,MAAM,kBAAkB,CAAA;AA0CzB,KAAK,gBAAgB,CAAC,IAAI,IAAI,IAAI,SAAS,QAAQ,CAAC,MAAM,MAAM,CAAC,GAC9D,aAAa,CAAC,MAAM,CAAC,GACrB,IAAI,SAAS,IAAI,GAChB,IAAI,GACJ,KAAK,CAAA;AAET,KAAK,WAAW,CAAC,IAAI,IAAI,IAAI,SAAS,QAAQ,CAAC,MAAM,MAAM,CAAC,GACzD,QAAQ,CAAC,MAAM,CAAC,GAChB,IAAI,SAAS,IAAI,GAChB,IAAI,GACJ,KAAK,CAAA;AAET,KAAK,kBAAkB,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI;IAC3D,QAAQ,EAAE,MAAM,IAAI,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CACjE,CAAA;AAED,KAAK,aAAa,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI;IACtD,QAAQ,EAAE,MAAM,IAAI,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;CAC5D,CAAA;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,CA8B/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAC/D,IAAI,EAAE,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAChC,kBAAkB,CAAC,KAAK,CAAC,CAAA"}
package/dist/index.d.ts CHANGED
@@ -3,12 +3,12 @@
3
3
  *
4
4
  * @packageDocumentation
5
5
  */
6
- export type { RelationType, ScalarFieldDef, HasOneRelationDef, HasManyRelationDef, FieldDef, EntitySchemaDef, SchemaDefinition, InferModel, InferEntityNames, EntityDef, InferEntityDef, UnionToIntersection, RoleNames, CommonEntity, EntityForRoles, ResolveEntity, SingleRoleMap, DefaultRole, SelectionBuilder, SelectionMeta, SelectionFieldMeta, FluentFragment, FluentDefiner, HasManyOptions, InferSelection, QuerySpec, QueryFieldSpec, EntityWhere, EntityOrderBy, ScalarCondition, OrderDirection, TypedHasManyOptions, AliasOptions, HasOneRelationState, InputProps, EntityFields, EntityFieldsAccessor, EntityFieldsRef, ScalarKeys, HasManyKeys, HasOneKeys, FieldRefMeta, FieldRef, HasManyRef, HasOneRef, EntityRef, FieldAccessor, HasManyAccessor, HasOneAccessor, EntityAccessor, ExtractHasOneEntityName, ExtractHasManyEntityName, ExtractRoleMap, BackendAdapter, QueryOptions, Query, GetQuery, ListQuery, QueryResult, GetQueryResult, ListQueryResult, MockDataStore, MockAdapterOptions, ContemberAdapterOptions, EntityLoadResult, EntityListLoadResult, LoadEntityOptions, LoadEntityListOptions, SelectionInput, CoreFluentDefiner, EntitySnapshot, FieldSnapshot, HasOneRelationSnapshot, HasManySnapshot, EntityState, LoadStatus, UndoManagerConfig, UndoState, UndoEntry, BindxEvent, FieldScopedEvent, FieldChangingEvent, FieldChangedEvent, RelationConnectingEvent, RelationConnectedEvent, RelationDisconnectingEvent, RelationDisconnectedEvent, RelationDeletingEvent, RelationDeletedEvent, HasManyConnectingEvent, HasManyConnectedEvent, HasManyDisconnectingEvent, HasManyDisconnectedEvent, EntityPersistingEvent, EntityPersistedEvent, EntityPersistFailedEvent, EntityResettingEvent, EntityResetEvent, EntityDeletingEvent, EntityDeletedEvent, ErrorAddedEvent, ErrorsClearedEvent, LoadStateChangedEvent, BeforeEvent, AfterEvent, AnyBindxEvent, EventTypeMap, InterceptorResult, Interceptor, EventListener, Unsubscribe, BeforeEventTypes, AfterEventTypes, } from '@contember/bindx';
6
+ export type { RelationType, ScalarFieldDef, HasOneRelationDef, HasManyRelationDef, FieldDef, EntitySchemaDef, SchemaDefinition, InferModel, InferEntityNames, EntityDef, InferEntityDef, UnionToIntersection, RoleNames, CommonEntity, EntityForRoles, ResolveEntity, SingleRoleMap, DefaultRole, SelectionBuilder, SelectionMeta, SelectionFieldMeta, FluentFragment, FluentDefiner, HasManyOptions, InferSelection, QuerySpec, QueryFieldSpec, EntityWhere, EntityOrderBy, ScalarCondition, OrderDirection, TypedHasManyOptions, AliasOptions, HasOneRelationState, InputProps, EntityFields, EntityFieldsAccessor, EntityFieldsRef, ScalarKeys, HasManyKeys, HasOneKeys, FieldRefMeta, FieldRef, HasManyRef, HasOneRef, EntityRef, FieldAccessor, HasManyAccessor, HasOneAccessor, EntityAccessor, ExtractHasOneEntityName, ExtractHasManyEntityName, ExtractRoleMap, BackendAdapter, QueryOptions, Query, GetQuery, ListQuery, QueryResult, GetQueryResult, ListQueryResult, MockDataStore, MockAdapterOptions, ContemberAdapterOptions, EntityLoadResult, EntityListLoadResult, LoadEntityOptions, LoadEntityListOptions, SelectionInput, CoreFluentDefiner, EntitySnapshot, FieldSnapshot, HasOneRelationSnapshot, HasManySnapshot, EntityState, LoadStatus, UndoManagerConfig, UndoState, BindxEvent, FieldScopedEvent, FieldChangingEvent, FieldChangedEvent, RelationConnectingEvent, RelationConnectedEvent, RelationDisconnectingEvent, RelationDisconnectedEvent, RelationDeletingEvent, RelationDeletedEvent, HasManyConnectingEvent, HasManyConnectedEvent, HasManyDisconnectingEvent, HasManyDisconnectedEvent, EntityPersistingEvent, EntityPersistedEvent, EntityPersistFailedEvent, EntityResettingEvent, EntityResetEvent, EntityDeletingEvent, EntityDeletedEvent, ErrorAddedEvent, ErrorsClearedEvent, LoadStateChangedEvent, BeforeEvent, AfterEvent, AnyBindxEvent, EventTypeMap, InterceptorResult, Interceptor, EventListener, Unsubscribe, BeforeEventTypes, AfterEventTypes, } from '@contember/bindx';
7
7
  export { scalar, enumScalar, hasOne, hasMany, defineSchema, entityDef, roleEntityDef, DEFAULT_ROLE, SchemaRegistry, createFragment, buildQueryFromSelection, EntityHandle, HasOneHandle, HasManyListHandle, FieldHandle, FIELD_REF_META, MockAdapter, ContemberAdapter, createEntityLoader, resolveSelectionMeta, buildQuery, SnapshotStore, ActionDispatcher, isTempId, isPlaceholderId, isPersistedId, generatePlaceholderId, BatchPersister, ChangeRegistry, UndoManager, EventEmitter, __internal, } from '@contember/bindx';
8
8
  export type { BindxProviderProps, BindxContextValue, BindxGraphQlClient, UseEntityOptions, UseEntityListOptions, LoadingEntityResult, ErrorEntityResult, NotFoundEntityResult, ReadyEntityResult, UseEntityResult, LoadingEntityListResult, ErrorEntityListResult, ReadyEntityListResult, UseEntityListResult, UseEntityCountOptions, UseEntityCountResult, PersistApi, EntityPersistApi, AnyRefWithMeta, PersistWithFeedbackApi, } from './hooks/index.js';
9
9
  export type { DirtyEntity, PersistScope, AllScope, EntityScope as EntityPersistScope, FieldsScope, RelationScope, CustomScope, EntityPersistResult, PersistenceResult, BatchPersistOptions, } from '@contember/bindx';
10
10
  export type { FieldProps, HasManyProps, HasOneProps, IfProps, EntityComponentProps, HasManyComponentOptions, ShowProps, SwitchProps, CaseProps, DefaultProps, SelectionPropMeta, SelectionProvider, EntityPropKeys, EntityFromProp, SelectionFromProp, ImplicitFragmentProperties, BindxComponentBase, BindxComponent, ComponentBuilder, ComponentBuilderState, CreateComponentOptions, InterfaceEntityPropConfig, ImplicitInterfaceEntityConfig, ExplicitInterfaceEntityConfig, AddInterfaces, InterfaceSelectorsMap, AnyEntityPropConfig, EntityPropConfig, ImplicitEntityConfig, ExplicitEntityConfig, AddImplicitEntity, AddExplicitEntity, AddImplicitInterfaceEntity, AddExplicitInterfaceEntity, SetScalarProps, BuildEntityProps, BuildProps, BuildFragmentProps, InitialBuilderState, } from './jsx/index.js';
11
- export { BindxProvider, useBackendAdapter, useSnapshotStore, useDispatcher, useBatchPersister, useBindxContext, useSchemaRegistry, useEntity, useEntityList, useEntityCount, usePersist, usePersistEntity, useUndo, useOnEvent, useOnEntityEvent, useOnFieldEvent, useIntercept, useInterceptEntity, useInterceptField, useEntityBeforePersist, useAccessor, useField, useHasMany, useHasOne, useNotificationStore, useNotifications, useShowNotification, useDismissNotification, usePersistWithFeedback, ContemberBindxProvider, schemaNamesToDef, } from './hooks/index.js';
11
+ export { BindxProvider, useBackendAdapter, useSnapshotStore, useDispatcher, useBatchPersister, useBindxContext, useSchemaRegistry, useEntity, useEntityList, useEntityCount, usePersist, usePersistEntity, useUndo, useOnEvent, useOnEntityEvent, useOnFieldEvent, useIntercept, useInterceptEntity, useInterceptField, useEntityBeforePersist, useAccessor, useField, useFields, useHasMany, useHasOne, useNotificationStore, useNotifications, useShowNotification, useDismissNotification, usePersistWithFeedback, ContemberBindxProvider, schemaNamesToDef, } from './hooks/index.js';
12
12
  export { RoleProvider, useHasRole, type RoleProviderProps } from './roles/index.js';
13
13
  export type { UndoHookResult } from './hooks/useUndo.js';
14
14
  export { Attribute, type AttributeProps, Field, HasMany, HasOne, If, Show, Switch, Case, Default, Entity, type EntityProps, EntityList, type EntityListProps, HasRole, type HasRoleProps, BINDX_COMPONENT, SCOPE_REF, cond, type Condition, createComponent, withCollector, isBindxComponent, mergeFragments, COMPONENT_MARKER, COMPONENT_BRAND, COMPONENT_SELECTIONS, createComponentBuilder, getComponentBrand, setBrandValidation, validateBrand, } from './jsx/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,YAAY,EAEX,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,aAAa,EACb,aAAa,EACb,WAAW,EAEX,gBAAgB,EAChB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,EACT,cAAc,EAEd,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,YAAY,EAEZ,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,WAAW,EACX,UAAU,EACV,YAAY,EAEZ,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,EAET,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EAEd,uBAAuB,EACvB,wBAAwB,EACxB,cAAc,EAEd,cAAc,EACd,YAAY,EACZ,KAAK,EACL,QAAQ,EACR,SAAS,EACT,WAAW,EACX,cAAc,EACd,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EAEvB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,EACd,iBAAiB,EAEjB,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,WAAW,EACX,UAAU,EAEV,iBAAiB,EACjB,SAAS,EACT,SAAS,EAET,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,GACf,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAEN,MAAM,EACN,UAAU,EACV,MAAM,EACN,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,cAAc,EAEd,cAAc,EACd,uBAAuB,EAEvB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,WAAW,EAEX,cAAc,EAEd,WAAW,EACX,gBAAgB,EAEhB,kBAAkB,EAClB,oBAAoB,EACpB,UAAU,EAEV,aAAa,EACb,gBAAgB,EAEhB,QAAQ,EACR,eAAe,EACf,aAAa,EACb,qBAAqB,EAErB,cAAc,EACd,cAAc,EAEd,WAAW,EAEX,YAAY,EAEZ,UAAU,GACV,MAAM,kBAAkB,CAAA;AAOzB,YAAY,EACX,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,mBAAmB,EAEnB,qBAAqB,EACrB,oBAAoB,EAEpB,UAAU,EACV,gBAAgB,EAChB,cAAc,EAEd,sBAAsB,GACtB,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EACX,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,WAAW,IAAI,kBAAkB,EACjC,WAAW,EACX,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACnB,MAAM,kBAAkB,CAAA;AAGzB,YAAY,EACX,UAAU,EACV,YAAY,EACZ,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,uBAAuB,EACvB,SAAS,EACT,WAAW,EACX,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,0BAA0B,EAE1B,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EAEtB,yBAAyB,EACzB,6BAA6B,EAC7B,6BAA6B,EAC7B,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EAEnB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EAEpB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EAEd,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,mBAAmB,GACnB,MAAM,gBAAgB,CAAA;AAOvB,OAAO,EACN,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EAEjB,SAAS,EACT,aAAa,EACb,cAAc,EAEd,UAAU,EACV,gBAAgB,EAEhB,OAAO,EAEP,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EAEtB,WAAW,EACX,QAAQ,EACR,UAAU,EACV,SAAS,EAET,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EAEtB,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGnF,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAIxD,OAAO,EACN,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,EACL,OAAO,EACP,MAAM,EACN,EAAE,EACF,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,OAAO,EACP,MAAM,EACN,KAAK,WAAW,EAChB,UAAU,EACV,KAAK,eAAe,EACpB,OAAO,EACP,KAAK,YAAY,EACjB,eAAe,EACf,SAAS,EAET,IAAI,EACJ,KAAK,SAAS,EAEd,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GACb,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACN,WAAW,EACX,cAAc,EACd,sBAAsB,EACtB,KAAK,gBAAgB,GACrB,MAAM,6BAA6B,CAAA;AAMpC,OAAO,EACN,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,GACd,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/jsx/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,OAAO,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAyC,MAAM,YAAY,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAmB,MAAM,oBAAoB,CAAA;AAE5E;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,GAAG,IAAI,CA6FnF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,sBAAsB,CAIvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6B5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CA0B3E"}
1
+ {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/jsx/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,OAAO,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAyC,MAAM,YAAY,CAAA;AACtF,OAAO,EAAE,sBAAsB,EAAmB,MAAM,oBAAoB,CAAA;AAE5E;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAwGnF;AAgBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,sBAAsB,CAIvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6B5F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,SAAI,GAAG,MAAM,CA0B3E"}
@@ -27,10 +27,12 @@ export declare class ComponentBuilderImpl<TState extends ComponentBuilderState>
27
27
  private readonly hasInterfacesMode;
28
28
  private readonly conditionFn;
29
29
  private readonly slotNames;
30
- constructor(schemaRegistry: SchemaRegistry<Record<string, object>> | null, entityConfigs: Map<string, EntityConfig>, roles: readonly string[], hasInterfacesMode?: boolean, conditionFn?: ((props: Record<string, unknown>) => Condition) | null, slotNames?: readonly string[]);
30
+ private readonly useFns;
31
+ constructor(schemaRegistry: SchemaRegistry<Record<string, object>> | null, entityConfigs: Map<string, EntityConfig>, roles: readonly string[], hasInterfacesMode?: boolean, conditionFn?: ((props: Record<string, unknown>) => Condition) | null, slotNames?: readonly string[], useFns?: readonly ((props: Record<string, unknown>) => object)[]);
31
32
  entity(propName: string, entity: EntityDef | string, selector?: (builder: SelectionBuilder<object>) => SelectionBuilder<object, object, object>): ComponentBuilderImpl<TState>;
32
33
  interfaces(selectors?: Record<string, (builder: SelectionBuilder<object>) => SelectionBuilder<object, object, object>>): ComponentBuilderImpl<TState>;
33
34
  props<TNewScalarProps extends object>(): ComponentBuilderImpl<TState>;
35
+ use(useFn: (props: Record<string, unknown>) => object): ComponentBuilderImpl<TState>;
34
36
  if(conditionFn: (props: Record<string, unknown>) => Condition): ComponentBuilderImpl<TState>;
35
37
  slots(names: readonly string[]): ComponentBuilderImpl<TState>;
36
38
  render(renderFn: (props: Record<string, unknown>) => ReactNode): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"componentBuilder.d.ts","sourceRoot":"","sources":["../../src/jsx/componentBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentBuilder.d.ts","sourceRoot":"","sources":["../../src/jsx/componentBuilder.ts"],"names":[],"mappings":"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"}
@@ -56,10 +56,11 @@ export type AnyEntityPropConfig = EntityPropConfig | InterfaceEntityPropConfig;
56
56
  * Accumulated builder state (type-level).
57
57
  * Grows as you chain builder methods.
58
58
  */
59
- export interface ComponentBuilderState<TEntityProps extends Record<string, AnyEntityPropConfig> = {}, TScalarProps extends object = object, TRoles extends readonly string[] = readonly string[]> {
59
+ export interface ComponentBuilderState<TEntityProps extends Record<string, AnyEntityPropConfig> = {}, TScalarProps extends object = object, TRoles extends readonly string[] = readonly string[], TUseProps extends object = {}> {
60
60
  readonly __entityProps: TEntityProps;
61
61
  readonly __scalarProps: TScalarProps;
62
62
  readonly __roles: TRoles;
63
+ readonly __useProps: TUseProps;
63
64
  }
64
65
  /**
65
66
  * Add an implicit entity to builder state.
@@ -67,33 +68,33 @@ export interface ComponentBuilderState<TEntityProps extends Record<string, AnyEn
67
68
  */
68
69
  export type AddImplicitEntity<TState extends ComponentBuilderState, TPropName extends string, TEntity extends object> = ComponentBuilderState<TState['__entityProps'] & {
69
70
  readonly [K in TPropName]: ImplicitEntityConfig<TEntity>;
70
- }, TState['__scalarProps'], TState['__roles']>;
71
+ }, TState['__scalarProps'], TState['__roles'], TState['__useProps']>;
71
72
  /**
72
73
  * Add an explicit entity to builder state.
73
74
  * Entity type comes directly from the EntityDef.
74
75
  */
75
76
  export type AddExplicitEntity<TState extends ComponentBuilderState, TPropName extends string, TEntity extends object, TSelected extends object> = ComponentBuilderState<TState['__entityProps'] & {
76
77
  readonly [K in TPropName]: ExplicitEntityConfig<TEntity, TSelected>;
77
- }, TState['__scalarProps'], TState['__roles']>;
78
+ }, TState['__scalarProps'], TState['__roles'], TState['__useProps']>;
78
79
  /**
79
80
  * Add an implicit interface entity to builder state.
80
81
  */
81
82
  export type AddImplicitInterfaceEntity<TState extends ComponentBuilderState, TPropName extends string, TInterface extends object> = ComponentBuilderState<TState['__entityProps'] & {
82
83
  readonly [K in TPropName]: ImplicitInterfaceEntityConfig<TInterface>;
83
- }, TState['__scalarProps'], TState['__roles']>;
84
+ }, TState['__scalarProps'], TState['__roles'], TState['__useProps']>;
84
85
  /**
85
86
  * Add an explicit interface entity to builder state.
86
87
  */
87
88
  export type AddExplicitInterfaceEntity<TState extends ComponentBuilderState, TPropName extends string, TInterface extends object> = ComponentBuilderState<TState['__entityProps'] & {
88
89
  readonly [K in TPropName]: ExplicitInterfaceEntityConfig<TInterface>;
89
- }, TState['__scalarProps'], TState['__roles']>;
90
+ }, TState['__scalarProps'], TState['__roles'], TState['__useProps']>;
90
91
  /**
91
92
  * Add multiple interface entities to builder state.
92
93
  * Each key in TInterfaces becomes a prop.
93
94
  */
94
95
  export type AddInterfaces<TState extends ComponentBuilderState, TInterfaces extends Record<string, object>> = ComponentBuilderState<TState['__entityProps'] & {
95
96
  readonly [K in keyof TInterfaces]: InterfaceEntityPropConfig<TInterfaces[K]>;
96
- }, TState['__scalarProps'], TState['__roles']>;
97
+ }, TState['__scalarProps'], TState['__roles'], TState['__useProps']>;
97
98
  /**
98
99
  * Type for selectors parameter in interfaces() method.
99
100
  * Maps prop names to selector functions.
@@ -104,7 +105,11 @@ export type InterfaceSelectorsMap<TInterfaces extends Record<string, object>> =
104
105
  /**
105
106
  * Set scalar props in builder state.
106
107
  */
107
- export type SetScalarProps<TState extends ComponentBuilderState, TNewScalarProps extends object> = ComponentBuilderState<TState['__entityProps'], TNewScalarProps, TState['__roles']>;
108
+ export type SetScalarProps<TState extends ComponentBuilderState, TNewScalarProps extends object> = ComponentBuilderState<TState['__entityProps'], TNewScalarProps, TState['__roles'], TState['__useProps']>;
109
+ /**
110
+ * Merge runtime-only values from .use() into builder state.
111
+ */
112
+ export type AddUseProps<TState extends ComponentBuilderState, TUse extends object> = ComponentBuilderState<TState['__entityProps'], TState['__scalarProps'], TState['__roles'], TState['__useProps'] & TUse>;
108
113
  /**
109
114
  * Build public entity props — always EntityRef (stable pointer, no live data).
110
115
  * Used for the component's external React props.
@@ -126,8 +131,10 @@ export type BuildRenderEntityProps<TEntityProps extends Record<string, AnyEntity
126
131
  export type BuildProps<TState extends ComponentBuilderState> = TState['__scalarProps'] & BuildEntityProps<TState['__entityProps'], TState['__roles']>;
127
132
  /**
128
133
  * Build complete render props type from builder state.
134
+ * Includes .use() values — they exist only inside the render function,
135
+ * never on the public props (BuildProps).
129
136
  */
130
- export type BuildRenderProps<TState extends ComponentBuilderState> = TState['__scalarProps'] & BuildRenderEntityProps<TState['__entityProps'], TState['__roles']>;
137
+ export type BuildRenderProps<TState extends ComponentBuilderState> = TState['__scalarProps'] & TState['__useProps'] & BuildRenderEntityProps<TState['__entityProps'], TState['__roles']>;
131
138
  /**
132
139
  * Build fragment properties ($propName) from entity config.
133
140
  */
@@ -229,6 +236,35 @@ export interface ComponentBuilder<TState extends ComponentBuilderState = Compone
229
236
  * ```
230
237
  */
231
238
  props<TNewScalarProps extends object>(): ComponentBuilder<SetScalarProps<TState, TNewScalarProps>>;
239
+ /**
240
+ * Provide runtime-only values to the render function — hooks are allowed here.
241
+ *
242
+ * The function runs during every React render (inside the component), so
243
+ * `useT()`, `useContext()`, `useMemo()` etc. all work. It is NEVER executed
244
+ * during static selection analysis — its outputs are replaced by inert
245
+ * stand-ins there, so the render body can use them freely without crashing
246
+ * the collection pass.
247
+ *
248
+ * This removes the need for thin wrapper components that only thread
249
+ * hook-derived values in as props (which also break selection discovery,
250
+ * because the JSX walk cannot see through plain components).
251
+ *
252
+ * Can be chained; later use() functions see the values of earlier ones.
253
+ *
254
+ * @example
255
+ * ```typescript
256
+ * createComponent()
257
+ * .entity('article', schema.Article)
258
+ * .use(() => ({ t: useTranslator() }))
259
+ * .render(({ article, t }) => (
260
+ * <div>
261
+ * <h2>{t('article.heading')}</h2>
262
+ * <Field field={article.title} />
263
+ * </div>
264
+ * ))
265
+ * ```
266
+ */
267
+ use<TUse extends object>(useFn: (props: BuildRenderProps<TState>) => TUse): ComponentBuilder<AddUseProps<TState, TUse>>;
232
268
  /**
233
269
  * Add a condition that must be true for the component to render.
234
270
  * If the condition is false, the component renders null.
@@ -1 +1 @@
1
- {"version":3,"file":"componentBuilder.types.d.ts","sourceRoot":"","sources":["../../src/jsx/componentBuilder.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"componentBuilder.types.d.ts","sourceRoot":"","sources":["../../src/jsx/componentBuilder.types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"componentBuilderCompat.d.ts","sourceRoot":"","sources":["../../src/jsx/componentBuilderCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAIpE;;;GAGG;AACH,wBAAgB,wBAAwB,CAEvC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC3C,IAAI,CAKN;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAErC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC3C,IAAI,CAKN"}
1
+ {"version":3,"file":"componentBuilderCompat.d.ts","sourceRoot":"","sources":["../../src/jsx/componentBuilderCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAIpE;;;GAGG;AACH,wBAAgB,wBAAwB,CACvC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC3C,IAAI,CAKN;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAC3C,IAAI,CAKN"}
@@ -35,5 +35,5 @@ export interface EntityConfig {
35
35
  * Note: Implicit selection collection is deferred (lazy) to avoid TDZ errors
36
36
  * when components reference other components defined later in the same file.
37
37
  */
38
- export declare function buildComponent<TProps extends object>(entityConfigs: Map<string, EntityConfig>, roles: readonly string[], renderFn: (props: TProps) => ReactNode, hasInterfacesMode: boolean, schemaRegistry: SchemaRegistry<Record<string, object>> | null, conditionFn: ((props: TProps) => Condition) | null, slotNames: readonly string[]): unknown;
38
+ export declare function buildComponent<TProps extends object>(entityConfigs: Map<string, EntityConfig>, roles: readonly string[], renderFn: (props: TProps) => ReactNode, hasInterfacesMode: boolean, schemaRegistry: SchemaRegistry<Record<string, object>> | null, conditionFn: ((props: TProps) => Condition) | null, slotNames: readonly string[], useFns: readonly ((props: TProps) => object)[]): unknown;
39
39
  //# sourceMappingURL=componentFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentFactory.d.ts","sourceRoot":"","sources":["../../src/jsx/componentFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAGX,gBAAgB,EAGhB,gBAAgB,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,cAAc,EAKd,MAAM,kBAAkB,CAAA;AAQzB,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iBAAiB,CAAA;AAOnE;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAA4B,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAA;AAMlE,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC1D;AAwBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,EACnD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACxC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,EACtC,iBAAiB,EAAE,OAAO,EAC1B,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAC7D,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,GAAG,IAAI,EAClD,SAAS,EAAE,SAAS,MAAM,EAAE,GAC1B,OAAO,CAiIT"}
1
+ {"version":3,"file":"componentFactory.d.ts","sourceRoot":"","sources":["../../src/jsx/componentFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAGX,gBAAgB,EAEhB,gBAAgB,EAChB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACN,cAAc,EAKd,MAAM,kBAAkB,CAAA;AAQzB,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iBAAiB,CAAA;AAOnE;;GAEG;AACH,eAAO,MAAM,gBAAgB,eAA4B,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,eAAe,eAA4B,CAAA;AAExD;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAA;AAMlE,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,MAAM,CAAC,KAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;IACnG,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC1D;AA0BD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,MAAM,EACnD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EACxC,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,EACtC,iBAAiB,EAAE,OAAO,EAC1B,cAAc,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,EAC7D,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,GAAG,IAAI,EAClD,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,EAAE,GAC5C,OAAO,CA4JT"}
@@ -1 +1 @@
1
- {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAsB,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7D;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CA8BrF;AAED,eAAO,MAAM,KAAK,EAAsB,OAAO,SAAS,CAAA;AAGxD,QAAA,MAAM,kBAAkB,EAAY,OAAO,KAAK,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AA4BlG,OAAO,EAAE,kBAAkB,IAAI,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/Field.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAsB,iBAAiB,EAAE,MAAM,aAAa,CAAA;AACpF,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAA;AAI7D;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CA4BrF;AAED,eAAO,MAAM,KAAK,EAAsB,OAAO,SAAS,CAAA;AAGxD,QAAA,MAAM,kBAAkB,EAAY,OAAO,KAAK,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AA4BlG,OAAO,EAAE,kBAAkB,IAAI,aAAa,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"If.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/If.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAQ,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAqC,iBAAiB,EAAY,MAAM,aAAa,CAAA;AAC1G,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAA;AAW7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAe/F;AAED,eAAO,MAAM,EAAE,0CAAe,CAAA;AAG9B,QAAA,MAAM,eAAe,EAAS,OAAO,EAAE,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAqDzF,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"If.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/If.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAQ,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EAAE,OAAO,EAAqC,iBAAiB,EAAY,MAAM,aAAa,CAAA;AAC1G,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAA;AAc7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,iBAAS,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAkB/F;AAED,eAAO,MAAM,EAAE,0CAAe,CAAA;AAG9B,QAAA,MAAM,eAAe,EAAS,OAAO,EAAE,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAqDzF,OAAO,EAAE,eAAe,IAAI,UAAU,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EACX,QAAQ,EAGR,iBAAiB,EACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7D,OAAO,EACN,KAAK,SAAS,EAId,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,IAC9B;IACA,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjB,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;CAC3D,GACD;IACA,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,EAAE,EAAE,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAC3C,QAAQ,EAAE,SAAS,CAAA;CAClB,CAAA;AAEJ,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAElD;AA2ED,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI,CA4ClE;AAED,eAAO,MAAM,MAAM,8CAAmB,CAAA;AA0BtC,QAAA,MAAM,iBAAiB,EAAW,OAAO,IAAI,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAmC/F,QAAA,MAAM,oBAAoB,EAAc,OAAO,OAAO,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAaxG,QAAA,MAAM,mBAAmB,EAAa,OAAO,MAAM,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAarG,OAAO,EACN,mBAAmB,IAAI,cAAc,EACrC,iBAAiB,IAAI,YAAY,EACjC,oBAAoB,IAAI,eAAe,GACvC,CAAA"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKb,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EACX,QAAQ,EAGR,iBAAiB,EACjB,MAAM,aAAa,CAAA;AACpB,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7D,OAAO,EACN,KAAK,SAAS,EAId,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,GAAG,OAAO,IAC9B;IACA,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IACjB,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,QAAQ,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAA;CAC3D,GACD;IACA,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,EAAE,EAAE,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IAC3C,QAAQ,EAAE,SAAS,CAAA;CAClB,CAAA;AAEJ,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,SAAS,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAElD;AAyFD,iBAAS,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI,CAyClE;AAED,eAAO,MAAM,MAAM,8CAAmB,CAAA;AA0BtC,QAAA,MAAM,iBAAiB,EAAW,OAAO,IAAI,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAmC/F,QAAA,MAAM,oBAAoB,EAAc,OAAO,OAAO,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAaxG,QAAA,MAAM,mBAAmB,EAAa,OAAO,MAAM,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAarG,OAAO,EACN,mBAAmB,IAAI,cAAc,EACrC,iBAAiB,IAAI,YAAY,EACjC,oBAAoB,IAAI,eAAe,GACvC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"standaloneCreateComponent.d.ts","sourceRoot":"","sources":["../../src/jsx/standaloneCreateComponent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,6BAA6B,CAAA;AAGpC;;;;;;;;;;;;;;;;;;GAkBG;AAEH,wBAAgB,eAAe,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;AACzG,wBAAgB,eAAe,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,MAAM,EAAE,EACrE,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,GAErC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"standaloneCreateComponent.d.ts","sourceRoot":"","sources":["../../src/jsx/standaloneCreateComponent.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,MAAM,6BAA6B,CAAA;AAGpC;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAA;AACzG,wBAAgB,eAAe,CAAC,KAAK,CAAC,MAAM,SAAS,SAAS,MAAM,EAAE,EACrE,OAAO,EAAE,sBAAsB,CAAC,MAAM,CAAC,GACrC,gBAAgB,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/bindx-react",
3
- "version": "0.1.46",
3
+ "version": "0.1.48",
4
4
  "description": "Type-safe React data binding framework",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -15,8 +15,8 @@
15
15
  "react": ">=18.0.0"
16
16
  },
17
17
  "dependencies": {
18
- "@contember/bindx": "0.1.46",
19
- "@contember/bindx-client": "0.1.46",
18
+ "@contember/bindx": "0.1.48",
19
+ "@contember/bindx-client": "0.1.48",
20
20
  "@contember/graphql-client": "^2.1.0-beta.1",
21
21
  "@radix-ui/primitive": "^1.1.3",
22
22
  "@radix-ui/react-slot": "^1.2.4"
@@ -0,0 +1,71 @@
1
+ import type { EntityAccessor } from '@contember/bindx'
2
+ import { EntityHandle } from '@contember/bindx'
3
+
4
+ /**
5
+ * Per-id cache of the accessors `useEntityList` hands out.
6
+ *
7
+ * An EntityHandle is a stateless live view over the store, so one handle — and one proxy over it —
8
+ * serves an id for the whole life of the list. Identity therefore means identity and nothing else:
9
+ * it is stable across every change to the entity, which is what lets identity-keyed consumers
10
+ * (`React.memo` rows, `useMemo`) skip work. Change delivery is the subscription's job — a memoized
11
+ * consumer must subscribe via `<Field>` / `useField` / `useAccessor` to observe changes.
12
+ *
13
+ * Relation and field notifications propagate through live parent edges, so subscribers on a root
14
+ * item still update when one of its descendants changes.
15
+ *
16
+ * The cache belongs to one hook instance and is thrown away whenever a handle construction input
17
+ * changes; handles validate field access against the selection they were built with.
18
+ */
19
+ export class ItemAccessorCache {
20
+ private readonly entries = new Map<string, EntityAccessor<object>>()
21
+
22
+ /**
23
+ * @param createHandle builds the handle for a canonical id
24
+ * @param resolveId maps an id to its canonical form — a temp id follows its
25
+ * temp→persisted rekey, so the handle (and the `id` it reports) is minted under the
26
+ * server id and the dead temp key is evicted. Mirrors HasManyListHandle.resolveItemKey.
27
+ */
28
+ constructor(
29
+ private readonly createHandle: (id: string) => EntityHandle<object>,
30
+ private readonly resolveId: (id: string) => string,
31
+ ) {}
32
+
33
+ /** Rebuilds the accessor array; ids no longer listed are evicted so the cache stays bounded. */
34
+ build(items: ReadonlyArray<{ id: string }>): Array<EntityAccessor<object>> {
35
+ const accessors: Array<EntityAccessor<object>> = []
36
+ const liveIds = new Set<string>()
37
+ this.canonicalizeEntries()
38
+
39
+ for (const item of items) {
40
+ const id = this.resolveId(item.id)
41
+ accessors.push(this.resolve(id))
42
+ liveIds.add(id)
43
+ }
44
+
45
+ for (const id of this.entries.keys()) {
46
+ if (!liveIds.has(id)) {
47
+ this.entries.delete(id)
48
+ }
49
+ }
50
+
51
+ return accessors
52
+ }
53
+
54
+ private canonicalizeEntries(): void {
55
+ for (const [id, accessor] of [...this.entries]) {
56
+ const canonicalId = this.resolveId(id)
57
+ if (canonicalId === id) continue
58
+ if (!this.entries.has(canonicalId)) this.entries.set(canonicalId, accessor)
59
+ this.entries.delete(id)
60
+ }
61
+ }
62
+
63
+ private resolve(id: string): EntityAccessor<object> {
64
+ let accessor = this.entries.get(id)
65
+ if (!accessor) {
66
+ accessor = EntityHandle.wrapProxy(this.createHandle(id))
67
+ this.entries.set(id, accessor)
68
+ }
69
+ return accessor
70
+ }
71
+ }
@@ -65,6 +65,7 @@ export { useEntityBeforePersist } from './useEntityBeforePersist.js'
65
65
 
66
66
  export { useAccessor } from './useAccessor.js'
67
67
  export { useField } from './useField.js'
68
+ export { useFields } from './useFields.js'
68
69
  export { useHasMany } from './useHasMany.js'
69
70
  export { useHasOne } from './useHasOne.js'
70
71