@contember/bindx-react 0.1.24 → 0.1.25

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 (52) hide show
  1. package/dist/hooks/index.d.ts +1 -0
  2. package/dist/hooks/index.d.ts.map +1 -1
  3. package/dist/hooks/useAccessor.d.ts +16 -0
  4. package/dist/hooks/useAccessor.d.ts.map +1 -0
  5. package/dist/hooks/useField.d.ts +1 -4
  6. package/dist/hooks/useField.d.ts.map +1 -1
  7. package/dist/hooks/useHasMany.d.ts +2 -5
  8. package/dist/hooks/useHasMany.d.ts.map +1 -1
  9. package/dist/hooks/useHasOne.d.ts +2 -5
  10. package/dist/hooks/useHasOne.d.ts.map +1 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/jsx/analyzer.d.ts.map +1 -1
  14. package/dist/jsx/componentBuilder.types.d.ts +16 -12
  15. package/dist/jsx/componentBuilder.types.d.ts.map +1 -1
  16. package/dist/jsx/componentFactory.d.ts.map +1 -1
  17. package/dist/jsx/components/Attribute.d.ts +38 -0
  18. package/dist/jsx/components/Attribute.d.ts.map +1 -0
  19. package/dist/jsx/components/Entity.d.ts +2 -2
  20. package/dist/jsx/components/Entity.d.ts.map +1 -1
  21. package/dist/jsx/components/EntityList.d.ts.map +1 -1
  22. package/dist/jsx/components/Field.d.ts.map +1 -1
  23. package/dist/jsx/components/HasMany.d.ts.map +1 -1
  24. package/dist/jsx/components/HasOne.d.ts.map +1 -1
  25. package/dist/jsx/components/index.d.ts +1 -0
  26. package/dist/jsx/components/index.d.ts.map +1 -1
  27. package/dist/jsx/devAnnotations.d.ts +12 -0
  28. package/dist/jsx/devAnnotations.d.ts.map +1 -0
  29. package/dist/jsx/index.d.ts +1 -0
  30. package/dist/jsx/index.d.ts.map +1 -1
  31. package/dist/jsx/types.d.ts +3 -3
  32. package/dist/jsx/types.d.ts.map +1 -1
  33. package/package.json +3 -3
  34. package/src/hooks/index.ts +1 -0
  35. package/src/hooks/useAccessor.ts +64 -0
  36. package/src/hooks/useField.ts +4 -20
  37. package/src/hooks/useHasMany.ts +4 -17
  38. package/src/hooks/useHasOne.ts +4 -17
  39. package/src/index.ts +3 -0
  40. package/src/jsx/analyzer.ts +1 -84
  41. package/src/jsx/componentBuilder.types.ts +31 -16
  42. package/src/jsx/componentFactory.ts +47 -5
  43. package/src/jsx/components/Attribute.tsx +90 -0
  44. package/src/jsx/components/Entity.tsx +5 -3
  45. package/src/jsx/components/EntityList.tsx +3 -1
  46. package/src/jsx/components/Field.tsx +11 -3
  47. package/src/jsx/components/HasMany.tsx +10 -1
  48. package/src/jsx/components/HasOne.tsx +5 -1
  49. package/src/jsx/components/index.ts +3 -0
  50. package/src/jsx/devAnnotations.ts +33 -0
  51. package/src/jsx/index.ts +1 -0
  52. package/src/jsx/types.ts +3 -3
@@ -6,6 +6,7 @@ export { ContemberBindxProvider, schemaNamesToDef, } from './ContemberBindxProvi
6
6
  export { useUndo, type UndoHookResult } from './useUndo.js';
7
7
  export { useOnEvent, useOnEntityEvent, useOnFieldEvent, useIntercept, useInterceptEntity, useInterceptField, } from './useBindxEvents.js';
8
8
  export { useEntityBeforePersist } from './useEntityBeforePersist.js';
9
+ export { useAccessor } from './useAccessor.js';
9
10
  export { useField } from './useField.js';
10
11
  export { useHasMany } from './useHasMany.js';
11
12
  export { useHasOne } from './useHasOne.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,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,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,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"}
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,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,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"}
@@ -0,0 +1,16 @@
1
+ import { type FieldRef, type FieldAccessor, type HasManyRef, type HasManyAccessor, type HasOneRef, type HasOneAccessor, type EntityRef, type EntityAccessor, type AnyBrand } from '@contember/bindx';
2
+ /**
3
+ * Subscribes to a ref and returns the corresponding accessor with live data access.
4
+ *
5
+ * At runtime, ref proxies already have all accessor properties —
6
+ * this hook adds a store subscription so the component re-renders on changes,
7
+ * and widens the type to the accessor variant.
8
+ *
9
+ * Works with all ref types: FieldRef, HasOneRef, HasManyRef, EntityRef.
10
+ */
11
+ export declare function useAccessor<T>(ref: FieldRef<T>): FieldAccessor<T>;
12
+ export declare function useAccessor<T>(ref: FieldRef<T> | null): FieldAccessor<T> | null;
13
+ export declare function useAccessor<TEntity, TSelected = TEntity, TBrand extends AnyBrand = AnyBrand, TEntityName extends string = string, TSchema extends Record<string, object> = Record<string, object>>(ref: HasManyRef<TEntity, TSelected, TBrand, TEntityName, TSchema>): HasManyAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>;
14
+ export declare function useAccessor<TEntity, TSelected = TEntity, TBrand extends AnyBrand = AnyBrand, TEntityName extends string = string, TSchema extends Record<string, object> = Record<string, object>>(ref: HasOneRef<TEntity, TSelected, TBrand, TEntityName, TSchema>): HasOneAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>;
15
+ export declare function useAccessor<TEntity, TSelected = TEntity, TBrand extends AnyBrand = AnyBrand, TEntityName extends string = string, TSchema extends Record<string, object> = Record<string, object>, TRoleMap extends Record<string, object> = Record<string, object>>(ref: EntityRef<TEntity, TSelected, TBrand, TEntityName, TSchema, TRoleMap>): EntityAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema, TRoleMap>;
16
+ //# sourceMappingURL=useAccessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAccessor.d.ts","sourceRoot":"","sources":["../../src/hooks/useAccessor.ts"],"names":[],"mappings":"AACA,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,QAAQ,EAGb,MAAM,kBAAkB,CAAA;AAMzB;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAClE,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;AAChF,wBAAgB,WAAW,CAC1B,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AACvI,wBAAgB,WAAW,CAC1B,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AACrI,wBAAgB,WAAW,CAC1B,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/D,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/D,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA"}
@@ -2,10 +2,7 @@ import { type FieldRef, type FieldAccessor } from '@contember/bindx';
2
2
  /**
3
3
  * Subscribes to a field ref and returns a FieldAccessor with live value access.
4
4
  *
5
- * At runtime, FieldRef proxies already have .value/.serverValue/.isDirty —
6
- * this hook adds a store subscription so the component re-renders on changes,
7
- * and widens the type to FieldAccessor.
8
- *
5
+ * Thin wrapper over useAccessor for ergonomics.
9
6
  * Accepts null — returns null without subscribing (useful for conditional fields).
10
7
  */
11
8
  export declare function useField<T>(ref: FieldRef<T>): FieldAccessor<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"useField.d.ts","sourceRoot":"","sources":["../../src/hooks/useField.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAkB,MAAM,kBAAkB,CAAA;AAMpF;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAC/D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA"}
1
+ {"version":3,"file":"useField.d.ts","sourceRoot":"","sources":["../../src/hooks/useField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAGpE;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;AAC/D,wBAAgB,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA"}
@@ -1,11 +1,8 @@
1
- import { type HasManyRef, type HasManyAccessor } from '@contember/bindx';
2
- import type { AnyBrand } from '@contember/bindx';
1
+ import { type HasManyRef, type HasManyAccessor, type AnyBrand } from '@contember/bindx';
3
2
  /**
4
3
  * Subscribes to a has-many ref and returns a HasManyAccessor with live collection access.
5
4
  *
6
- * At runtime, HasManyRef proxies already have .items/.length/.map —
7
- * this hook adds a store subscription so the component re-renders on changes,
8
- * and widens the type to HasManyAccessor.
5
+ * Thin wrapper over useAccessor for ergonomics.
9
6
  */
10
7
  export declare function useHasMany<TEntity, TSelected = TEntity, TBrand extends AnyBrand = AnyBrand, TEntityName extends string = string, TSchema extends Record<string, object> = Record<string, object>>(ref: HasManyRef<TEntity, TSelected, TBrand, TEntityName, TSchema>): HasManyAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>;
11
8
  //# sourceMappingURL=useHasMany.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHasMany.d.ts","sourceRoot":"","sources":["../../src/hooks/useHasMany.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAkB,MAAM,kBAAkB,CAAA;AAExF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,UAAU,CACzB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAWtI"}
1
+ {"version":3,"file":"useHasMany.d.ts","sourceRoot":"","sources":["../../src/hooks/useHasMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGvF;;;;GAIG;AACH,wBAAgB,UAAU,CACzB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,GAAG,EAAE,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAEtI"}
@@ -1,11 +1,8 @@
1
- import { type HasOneRef, type HasOneAccessor } from '@contember/bindx';
2
- import type { AnyBrand } from '@contember/bindx';
1
+ import { type HasOneRef, type HasOneAccessor, type AnyBrand } from '@contember/bindx';
3
2
  /**
4
3
  * Subscribes to a has-one ref and returns a HasOneAccessor with live state access.
5
4
  *
6
- * At runtime, HasOneRef proxies already have .$state/.$data/.$entity/.$fields —
7
- * this hook adds a store subscription so the component re-renders on changes,
8
- * and widens the type to HasOneAccessor.
5
+ * Thin wrapper over useAccessor for ergonomics.
9
6
  */
10
7
  export declare function useHasOne<TEntity, TSelected = TEntity, TBrand extends AnyBrand = AnyBrand, TEntityName extends string = string, TSchema extends Record<string, object> = Record<string, object>>(ref: HasOneRef<TEntity, TSelected, TBrand, TEntityName, TSchema>): HasOneAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>;
11
8
  //# sourceMappingURL=useHasOne.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useHasOne.d.ts","sourceRoot":"","sources":["../../src/hooks/useHasOne.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAkB,MAAM,kBAAkB,CAAA;AAEtF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEhD;;;;;;GAMG;AACH,wBAAgB,SAAS,CACxB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAWpI"}
1
+ {"version":3,"file":"useHasOne.d.ts","sourceRoot":"","sources":["../../src/hooks/useHasOne.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAGrF;;;;GAIG;AACH,wBAAgB,SAAS,CACxB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,CAEpI"}
package/dist/index.d.ts CHANGED
@@ -8,10 +8,10 @@ export { scalar, hasOne, hasMany, defineSchema, entityDef, roleEntityDef, DEFAUL
8
8
  export type { BindxProviderProps, BindxContextValue, BindxGraphQlClient, UseEntityOptions, UseEntityListOptions, LoadingEntityResult, ErrorEntityResult, NotFoundEntityResult, ReadyEntityResult, UseEntityResult, LoadingEntityListResult, ErrorEntityListResult, ReadyEntityListResult, UseEntityListResult, PersistApi, EntityPersistApi, AnyRefWithMeta, } 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, 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, usePersist, usePersistEntity, useUndo, useOnEvent, useOnEntityEvent, useOnFieldEvent, useIntercept, useInterceptEntity, useInterceptField, useField, useHasMany, useHasOne, ContemberBindxProvider, schemaNamesToDef, } from './hooks/index.js';
11
+ export { BindxProvider, useBackendAdapter, useSnapshotStore, useDispatcher, useBatchPersister, useBindxContext, useSchemaRegistry, useEntity, useEntityList, usePersist, usePersistEntity, useUndo, useOnEvent, useOnEntityEvent, useOnFieldEvent, useIntercept, useInterceptEntity, useInterceptField, useAccessor, useField, useHasMany, useHasOne, 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
- export { Field, HasMany, HasOne, If, Show, 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';
14
+ export { Attribute, type AttributeProps, Field, HasMany, HasOne, If, Show, 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';
15
15
  export { EntityScope, useEntityScope, useOptionalEntityScope, type EntityScopeProps, } from './components/EntityScope.js';
16
16
  export { SelectionMetaCollector, mergeSelections, createEmptySelection, createCollectorProxy, analyzeJsx, collectSelection, convertToQuerySelection, debugSelection, } from './jsx/index.js';
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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;AAEtF,OAAO,EAAE,sBAAsB,EAAmB,MAAM,oBAAoB,CAAA;AAI5E;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,GAAG,IAAI,CA8GnF;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;AAiED;;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,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"}
@@ -106,24 +106,28 @@ export type InterfaceSelectorsMap<TInterfaces extends Record<string, object>> =
106
106
  */
107
107
  export type SetScalarProps<TState extends ComponentBuilderState, TNewScalarProps extends object> = ComponentBuilderState<TState['__entityProps'], TNewScalarProps, TState['__roles']>;
108
108
  /**
109
- * Build EntityAccessor props from entity config.
110
- *
111
- * For explicit selection (selector provided): Returns EntityAccessor with full access
112
- * - Allows direct field access: `entity.fieldName.value`
113
- * - Allows relation access: `entity.relation.length`, `entity.relation.$entity`
114
- *
115
- * For implicit selection (no selector): Returns EntityRef with restricted access
116
- * - Blocks direct field access to enforce declarative patterns
117
- * - Users must use components: `<Field field={entity.fieldName} />`
118
- * - Users must use condition DSL: `<If condition={cond.hasItems(entity.relation)} />`
109
+ * Build public entity props — always EntityRef (stable pointer, no live data).
110
+ * Used for the component's external React props.
119
111
  */
120
112
  export type BuildEntityProps<TEntityProps extends Record<string, AnyEntityPropConfig>, TRoles extends readonly string[]> = {
113
+ readonly [K in keyof TEntityProps]: TEntityProps[K] extends EntityPropConfig<infer TEntity, infer TSelected, infer _TIsImplicit> ? EntityRef<TEntity, TSelected, AnyBrand, string> : TEntityProps[K] extends InterfaceEntityPropConfig<infer TInterface, infer _TIsImplicit> ? EntityRef<TInterface, TInterface, AnyBrand, string> : never;
114
+ };
115
+ /**
116
+ * Build render entity props — explicit selection → EntityAccessor (live data),
117
+ * implicit selection → EntityRef (pointer only, use <Field> components).
118
+ * Used for the render function's props type.
119
+ */
120
+ export type BuildRenderEntityProps<TEntityProps extends Record<string, AnyEntityPropConfig>, TRoles extends readonly string[]> = {
121
121
  readonly [K in keyof TEntityProps]: TEntityProps[K] extends EntityPropConfig<infer TEntity, infer TSelected, infer TIsImplicit> ? TIsImplicit extends true ? EntityRef<TEntity, TSelected, AnyBrand, string> : EntityAccessor<TEntity, TSelected, AnyBrand, string> : TEntityProps[K] extends InterfaceEntityPropConfig<infer TInterface, infer TIsImplicit> ? TIsImplicit extends true ? EntityRef<TInterface, TInterface, AnyBrand, string> : EntityAccessor<TInterface, TInterface, AnyBrand, string> : never;
122
122
  };
123
123
  /**
124
- * Build complete props type from builder state.
124
+ * Build complete public props type from builder state.
125
125
  */
126
126
  export type BuildProps<TState extends ComponentBuilderState> = TState['__scalarProps'] & BuildEntityProps<TState['__entityProps'], TState['__roles']>;
127
+ /**
128
+ * Build complete render props type from builder state.
129
+ */
130
+ export type BuildRenderProps<TState extends ComponentBuilderState> = TState['__scalarProps'] & BuildRenderEntityProps<TState['__entityProps'], TState['__roles']>;
127
131
  /**
128
132
  * Build fragment properties ($propName) from entity config.
129
133
  */
@@ -251,7 +255,7 @@ export interface ComponentBuilder<TState extends ComponentBuilderState = Compone
251
255
  * @param renderFn - React render function receiving typed props
252
256
  * @returns Bindx component with fragment properties
253
257
  */
254
- render(renderFn: (props: BuildProps<TState>) => ReactNode): BindxComponent<TState>;
258
+ render(renderFn: (props: BuildRenderProps<TState>) => ReactNode): BindxComponent<TState>;
255
259
  }
256
260
  /**
257
261
  * Initial builder state with empty entity props and scalar props.
@@ -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":"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;AAMnE;;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;AAMD;;;;;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,GAChD,OAAO,CAsHT"}
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,GAChD,OAAO,CAiIT"}
@@ -0,0 +1,38 @@
1
+ import { type ReactElement } from 'react';
2
+ import type { FieldAccessor, FieldRef } from '../types.js';
3
+ import { BINDX_COMPONENT } from '../types.js';
4
+ import type { SelectionProvider } from '../types.js';
5
+ /**
6
+ * Props for Attribute component.
7
+ */
8
+ export interface AttributeProps<T> {
9
+ /** The field to subscribe to */
10
+ field: FieldRef<T>;
11
+ /** Maps the field accessor to props that get spread onto the child element */
12
+ format: (accessor: FieldAccessor<T>) => Record<string, unknown>;
13
+ /** Single child element — receives the formatted props via cloneElement */
14
+ children: ReactElement;
15
+ }
16
+ /**
17
+ * Attribute component — applies field-derived props to a child element.
18
+ *
19
+ * Like `<Field>` but for attributes (style, className, data-*) instead of text content.
20
+ * Subscribes to the field, calls `format` to produce props, and clones the child with merged props.
21
+ * During selection collection, both the field and children's fields are tracked.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * <Attribute field={tag.color} format={color => ({ style: { backgroundColor: color.value ?? '#666' } })}>
26
+ * <span>
27
+ * <Field field={tag.name} />
28
+ * </span>
29
+ * </Attribute>
30
+ * ```
31
+ */
32
+ declare function AttributeImpl<T>({ field, format, children }: AttributeProps<T>): ReactElement | null;
33
+ export declare const Attribute: typeof AttributeImpl;
34
+ declare const attributeWithSelection: typeof Attribute & SelectionProvider & {
35
+ [BINDX_COMPONENT]: true;
36
+ };
37
+ export { attributeWithSelection as AttributeWithMeta };
38
+ //# sourceMappingURL=Attribute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Attribute.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/Attribute.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AAC7F,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAA+C,MAAM,aAAa,CAAA;AACvG,OAAO,EAAkB,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC;IAChC,gCAAgC;IAChC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAClB,8EAA8E;IAC9E,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/D,2EAA2E;IAC3E,QAAQ,EAAE,YAAY,CAAA;CACtB;AAED;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,aAAa,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CAgB7F;AAED,eAAO,MAAM,SAAS,EAA0B,OAAO,aAAa,CAAA;AAGpE,QAAA,MAAM,sBAAsB,EAAgB,OAAO,SAAS,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAiC9G,OAAO,EAAE,sBAAsB,IAAI,iBAAiB,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React, { type ReactElement } from 'react';
2
- import type { EntityAccessor } from '../types.js';
2
+ import type { EntityRef } from '../types.js';
3
3
  import { type EntityDef, type EntityUniqueWhere, type FieldError, type CommonEntity } from '@contember/bindx';
4
4
  /**
5
5
  * Base props shared by both edit and create modes.
@@ -9,7 +9,7 @@ interface EntityBaseProps<TRoleMap extends Record<string, object>> {
9
9
  /** Entity definition reference */
10
10
  entity: EntityDef<TRoleMap>;
11
11
  /** Render function receiving typed entity accessor with direct field access */
12
- children: (entity: EntityAccessor<CommonEntity<TRoleMap>>) => React.ReactNode;
12
+ children: (entity: EntityRef<CommonEntity<TRoleMap>>) => React.ReactNode;
13
13
  /** Error fallback */
14
14
  error?: (error: FieldError) => React.ReactNode;
15
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/Entity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAuE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAIrH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAiB,KAAK,UAAU,EAAgF,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAI1M;;;GAGG;AACH,UAAU,eAAe,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAChE,kCAAkC;IAClC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IAC7E,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK,CAAC,SAAS,CAAA;CAC9C;AAED;;GAEG;AACH,UAAU,aAAa,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAE,SAAQ,eAAe,CAAC,QAAQ,CAAC;IACjG,sFAAsF;IACtF,EAAE,EAAE,iBAAiB,CAAA;IACrB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,uBAAuB;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;GAEG;AACH,UAAU,iBAAiB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAE,SAAQ,eAAe,CAAC,QAAQ,CAAC;IACrG,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,8DAA8D;IAC9D,MAAM,EAAE,IAAI,CAAA;IACZ,wEAAwE;IACxE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,QAAQ,CAAC,EAAE,KAAK,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IACrF,aAAa,CAAC,QAAQ,CAAC,GACvB,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AA6O9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAS,UAAU,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1D,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC1B,YAAY,GAAG,IAAI,CA0BrB;AAGD,eAAO,MAAM,MAAM,EAAkC,OAAO,UAAU,CAAA"}
1
+ {"version":3,"file":"Entity.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/Entity.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAuE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAKrH,OAAO,KAAK,EAAkB,SAAS,EAAiB,MAAM,aAAa,CAAA;AAC3E,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAiB,KAAK,UAAU,EAAgF,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAI1M;;;GAGG;AACH,UAAU,eAAe,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAChE,kCAAkC;IAClC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAA;IACxE,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK,CAAC,SAAS,CAAA;CAC9C;AAED;;GAEG;AACH,UAAU,aAAa,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAE,SAAQ,eAAe,CAAC,QAAQ,CAAC;IACjG,sFAAsF;IACtF,EAAE,EAAE,iBAAiB,CAAA;IACrB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,uBAAuB;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED;;GAEG;AACH,UAAU,iBAAiB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAE,SAAQ,eAAe,CAAC,QAAQ,CAAC;IACrG,EAAE,CAAC,EAAE,KAAK,CAAA;IACV,8DAA8D;IAC9D,MAAM,EAAE,IAAI,CAAA;IACZ,wEAAwE;IACxE,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,OAAO,CAAC,EAAE,KAAK,CAAA;IACf,QAAQ,CAAC,EAAE,KAAK,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IACrF,aAAa,CAAC,QAAQ,CAAC,GACvB,iBAAiB,CAAC,QAAQ,CAAC,CAAA;AA8O9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAS,UAAU,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1D,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,GAC1B,YAAY,GAAG,IAAI,CA0BrB;AAGD,eAAO,MAAM,MAAM,EAAkC,OAAO,UAAU,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityList.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/EntityList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAQ,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG3H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAChG,kCAAkC;IAClC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC3B,kEAAkE;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5C,2DAA2D;IAC3D,OAAO,CAAC,EAAE,SAAS,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA;IAC1D,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAC5F,uBAAuB;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9C,oDAAoD;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,mBAAmB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACrE,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,KAAK,EAAE,aAAa,EACpB,KAAK,GACL,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,IAAI,CAwDjD;AAGD,eAAO,MAAM,UAAU,EAA2C,OAAO,mBAAmB,CAAA"}
1
+ {"version":3,"file":"EntityList.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/EntityList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAQ,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG3H,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAChG,kCAAkC;IAClC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;IAC3B,kEAAkE;IAClE,MAAM,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC5C,2DAA2D;IAC3D,OAAO,CAAC,EAAE,SAAS,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAA;IAC1D,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,+EAA+E;IAC/E,QAAQ,EAAE,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IAC5F,uBAAuB;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK,CAAC,SAAS,CAAA;IAC9C,oDAAoD;IACpD,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,iBAAS,mBAAmB,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EACrE,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,KAAK,EAAE,aAAa,EACpB,KAAK,GACL,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,YAAY,GAAG,IAAI,CAyDjD;AAGD,eAAO,MAAM,UAAU,EAA2C,OAAO,mBAAmB,CAAA"}
@@ -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;AAG7D;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,SAAS,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CAuBrF;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,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 +1 @@
1
- {"version":3,"file":"HasMany.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/HasMany.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAQ,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAqC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,EAAkB,eAAe,EAAa,MAAM,aAAa,CAAA;AAKxE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,WAAW,CACnB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,YAAY,CAQnG;AAED,eAAO,MAAM,OAAO,EAAwB,OAAO,WAAW,CAAA;AAG9D,QAAA,MAAM,oBAAoB,EAAc,OAAO,OAAO,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AA0DxG,OAAO,EAAE,oBAAoB,IAAI,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"HasMany.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/HasMany.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAQ,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EAAE,YAAY,EAAqC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/G,OAAO,EAAkB,eAAe,EAAa,MAAM,aAAa,CAAA;AAMxE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,iBAAS,WAAW,CACnB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,YAAY,CAgBnG;AAED,eAAO,MAAM,OAAO,EAAwB,OAAO,WAAW,CAAA;AAG9D,QAAA,MAAM,oBAAoB,EAAc,OAAO,OAAO,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AA0DxG,OAAO,EAAE,oBAAoB,IAAI,eAAe,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"HasOne.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/HasOne.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAQ,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAqC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC9G,OAAO,EAAkB,eAAe,EAAa,MAAM,aAAa,CAAA;AAKxE;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAClB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,YAAY,CAKlG;AAED,eAAO,MAAM,MAAM,EAAuB,OAAO,UAAU,CAAA;AAG3D,QAAA,MAAM,mBAAmB,EAAa,OAAO,MAAM,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAuCrG,OAAO,EAAE,mBAAmB,IAAI,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"HasOne.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/HasOne.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAQ,KAAK,YAAY,EAAkB,MAAM,OAAO,CAAA;AACtE,OAAO,KAAK,EAAE,WAAW,EAAqC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC9G,OAAO,EAAkB,eAAe,EAAa,MAAM,aAAa,CAAA;AAMxE;;;;;;;;;;;;;;GAcG;AACH,iBAAS,UAAU,CAClB,OAAO,EACP,SAAS,GAAG,OAAO,EACnB,MAAM,SAAS,QAAQ,GAAG,QAAQ,EAClC,WAAW,SAAS,MAAM,GAAG,MAAM,EACnC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9D,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,YAAY,CAQlG;AAED,eAAO,MAAM,MAAM,EAAuB,OAAO,UAAU,CAAA;AAG3D,QAAA,MAAM,mBAAmB,EAAa,OAAO,MAAM,GAAG,iBAAiB,GAAG;IAAE,CAAC,eAAe,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAuCrG,OAAO,EAAE,mBAAmB,IAAI,cAAc,EAAE,CAAA"}
@@ -1,3 +1,4 @@
1
+ export { Attribute, AttributeWithMeta, type AttributeProps } from './Attribute.js';
1
2
  export { Field, FieldWithMeta } from './Field.js';
2
3
  export { HasMany, HasManyWithMeta } from './HasMany.js';
3
4
  export { HasOne, HasOneWithMeta } from './HasOne.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAGjD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AAG9D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAGtD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/jsx/components/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAGlF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAGjD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAGvD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGpD,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGxC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAA;AAG9D,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAGtD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { type ReactNode } from 'react';
2
+ /**
3
+ * In dev mode, injects data attributes onto an existing React element via cloneElement.
4
+ * If annotations are disabled or the node is not a valid element, returns as-is.
5
+ */
6
+ export declare function annotateElement(element: ReactNode, attrs: Record<string, string>): ReactNode;
7
+ /**
8
+ * Returns true if dev annotations are enabled.
9
+ * Use for conditional wrapping (e.g., Field text render in span).
10
+ */
11
+ export declare function isDevAnnotationsEnabled(): boolean;
12
+ //# sourceMappingURL=devAnnotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devAnnotations.d.ts","sourceRoot":"","sources":["../../src/jsx/devAnnotations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAYpE;;;GAGG;AACH,wBAAgB,eAAe,CAC9B,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,SAAS,CAKX;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAEjD"}
@@ -2,6 +2,7 @@ export { BINDX_COMPONENT, FIELD_REF_META, SCOPE_REF, type FieldRefMeta, type Fie
2
2
  export { SelectionMetaCollector, mergeSelections, createEmptySelection, } from './SelectionMeta.js';
3
3
  export { createCollectorProxy, } from './proxy.js';
4
4
  export { analyzeJsx, collectSelection, convertToQuerySelection, debugSelection, } from './analyzer.js';
5
+ export { Attribute, AttributeWithMeta, type AttributeProps } from './components/Attribute.js';
5
6
  export { Field, FieldWithMeta } from './components/Field.js';
6
7
  export { HasMany, HasManyWithMeta } from './components/HasMany.js';
7
8
  export { HasOne, HasOneWithMeta } from './components/HasOne.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jsx/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,eAAe,EACf,cAAc,EACd,SAAS,EACT,KAAK,YAAY,EAEjB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EAEd,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAEpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,QAAQ,GACb,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,sBAAsB,EACtB,eAAe,EACf,oBAAoB,GACpB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACN,oBAAoB,GACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,GACd,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGpE,OAAO,EACN,IAAI,EACJ,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,aAAa,GAClB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,YAAY,EACX,iBAAiB,EACjB,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,sBAAsB,CAAA;AAG7B,YAAY,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,0BAA0B,GAC1B,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jsx/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,eAAe,EACf,cAAc,EACd,SAAS,EACT,KAAK,YAAY,EAEjB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,SAAS,EAEd,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEnB,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAEpB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,QAAQ,GACb,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,sBAAsB,EACtB,eAAe,EACf,oBAAoB,GACpB,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EACN,oBAAoB,GACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACN,UAAU,EACV,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,GACd,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC7F,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC/D,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACzE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACjE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAGpE,OAAO,EACN,IAAI,EACJ,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,KAAK,SAAS,EACd,KAAK,aAAa,GAClB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GACb,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,YAAY,EACX,iBAAiB,EACjB,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,sBAAsB,CAAA;AAG7B,YAAY,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,0BAA0B,GAC1B,MAAM,kBAAkB,CAAA"}
@@ -45,7 +45,7 @@ export interface HasManyComponentOptions {
45
45
  */
46
46
  export interface HasManyProps<TEntity, TSelected = TEntity, TBrand extends AnyBrand = AnyBrand, TEntityName extends string = string, TSchema extends Record<string, object> = Record<string, object>> {
47
47
  field: HasManyRef<TEntity, TSelected, TBrand, TEntityName, TSchema>;
48
- children: (item: EntityAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>, index: number) => ReactNode;
48
+ children: (item: EntityRef<TEntity, TSelected, TBrand, TEntityName, TSchema>, index: number) => ReactNode;
49
49
  filter?: unknown;
50
50
  orderBy?: unknown;
51
51
  limit?: number;
@@ -64,7 +64,7 @@ export interface HasManyProps<TEntity, TSelected = TEntity, TBrand extends AnyBr
64
64
  */
65
65
  export interface HasOneProps<TEntity, TSelected = TEntity, TBrand extends AnyBrand = AnyBrand, TEntityName extends string = string, TSchema extends Record<string, object> = Record<string, object>> {
66
66
  field: HasOneRef<TEntity, TSelected, TBrand, TEntityName, TSchema>;
67
- children: (entity: EntityAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>) => ReactNode;
67
+ children: (entity: EntityRef<TEntity, TSelected, TBrand, TEntityName, TSchema>) => ReactNode;
68
68
  }
69
69
  /**
70
70
  * Props for Entity component.
@@ -74,7 +74,7 @@ export interface HasOneProps<TEntity, TSelected = TEntity, TBrand extends AnyBra
74
74
  export interface EntityComponentProps<TSchema extends Record<string, object>, K extends keyof TSchema & string> {
75
75
  name: K;
76
76
  id: string;
77
- children: (entity: EntityAccessor<TSchema[K], TSchema[K], import('@contember/bindx').AnyBrand, K, TSchema>) => ReactNode;
77
+ children: (entity: EntityRef<TSchema[K], TSchema[K], import('@contember/bindx').AnyBrand, K, TSchema>) => ReactNode;
78
78
  }
79
79
  /**
80
80
  * Props for If conditional component.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jsx/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/jsx/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contember/bindx-react",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
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.24",
19
- "@contember/bindx-client": "0.1.24",
18
+ "@contember/bindx": "0.1.25",
19
+ "@contember/bindx-client": "0.1.25",
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"
@@ -56,6 +56,7 @@ export {
56
56
 
57
57
  export { useEntityBeforePersist } from './useEntityBeforePersist.js'
58
58
 
59
+ export { useAccessor } from './useAccessor.js'
59
60
  export { useField } from './useField.js'
60
61
  export { useHasMany } from './useHasMany.js'
61
62
  export { useHasOne } from './useHasOne.js'
@@ -0,0 +1,64 @@
1
+ import { useSyncExternalStore } from 'react'
2
+ import {
3
+ type FieldRef,
4
+ type FieldAccessor,
5
+ type HasManyRef,
6
+ type HasManyAccessor,
7
+ type HasOneRef,
8
+ type HasOneAccessor,
9
+ type EntityRef,
10
+ type EntityAccessor,
11
+ type AnyBrand,
12
+ FIELD_REF_META,
13
+ type FieldRefMeta,
14
+ } from '@contember/bindx'
15
+ import { useSnapshotStore } from './BackendAdapterContext.js'
16
+
17
+ const noopSubscribe = (): (() => void) => () => {}
18
+ const noopSnapshot = (): number => 0
19
+
20
+ /**
21
+ * Subscribes to a ref and returns the corresponding accessor with live data access.
22
+ *
23
+ * At runtime, ref proxies already have all accessor properties —
24
+ * this hook adds a store subscription so the component re-renders on changes,
25
+ * and widens the type to the accessor variant.
26
+ *
27
+ * Works with all ref types: FieldRef, HasOneRef, HasManyRef, EntityRef.
28
+ */
29
+ export function useAccessor<T>(ref: FieldRef<T>): FieldAccessor<T>
30
+ export function useAccessor<T>(ref: FieldRef<T> | null): FieldAccessor<T> | null
31
+ export function useAccessor<
32
+ TEntity,
33
+ TSelected = TEntity,
34
+ TBrand extends AnyBrand = AnyBrand,
35
+ TEntityName extends string = string,
36
+ TSchema extends Record<string, object> = Record<string, object>,
37
+ >(ref: HasManyRef<TEntity, TSelected, TBrand, TEntityName, TSchema>): HasManyAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>
38
+ export function useAccessor<
39
+ TEntity,
40
+ TSelected = TEntity,
41
+ TBrand extends AnyBrand = AnyBrand,
42
+ TEntityName extends string = string,
43
+ TSchema extends Record<string, object> = Record<string, object>,
44
+ >(ref: HasOneRef<TEntity, TSelected, TBrand, TEntityName, TSchema>): HasOneAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema>
45
+ export function useAccessor<
46
+ TEntity,
47
+ TSelected = TEntity,
48
+ TBrand extends AnyBrand = AnyBrand,
49
+ TEntityName extends string = string,
50
+ TSchema extends Record<string, object> = Record<string, object>,
51
+ TRoleMap extends Record<string, object> = Record<string, object>,
52
+ >(ref: EntityRef<TEntity, TSelected, TBrand, TEntityName, TSchema, TRoleMap>): EntityAccessor<TEntity, TSelected, TBrand, TEntityName, TSchema, TRoleMap>
53
+ export function useAccessor(ref: { [FIELD_REF_META]: FieldRefMeta } | null): unknown {
54
+ const store = useSnapshotStore()
55
+ const meta = ref?.[FIELD_REF_META]
56
+
57
+ useSyncExternalStore(
58
+ meta ? (callback) => store.subscribeToEntity(meta.entityType, meta.entityId, callback) : noopSubscribe,
59
+ meta ? () => store.getVersion() : noopSnapshot,
60
+ meta ? () => store.getVersion() : noopSnapshot,
61
+ )
62
+
63
+ return ref
64
+ }
@@ -1,30 +1,14 @@
1
- import { useSyncExternalStore } from 'react'
2
- import { type FieldRef, type FieldAccessor, FIELD_REF_META } from '@contember/bindx'
3
- import { useSnapshotStore } from './BackendAdapterContext.js'
4
-
5
- const noopSubscribe = () => () => {}
6
- const noopSnapshot = () => 0
1
+ import { type FieldRef, type FieldAccessor } from '@contember/bindx'
2
+ import { useAccessor } from './useAccessor.js'
7
3
 
8
4
  /**
9
5
  * Subscribes to a field ref and returns a FieldAccessor with live value access.
10
6
  *
11
- * At runtime, FieldRef proxies already have .value/.serverValue/.isDirty —
12
- * this hook adds a store subscription so the component re-renders on changes,
13
- * and widens the type to FieldAccessor.
14
- *
7
+ * Thin wrapper over useAccessor for ergonomics.
15
8
  * Accepts null — returns null without subscribing (useful for conditional fields).
16
9
  */
17
10
  export function useField<T>(ref: FieldRef<T>): FieldAccessor<T>
18
11
  export function useField<T>(ref: FieldRef<T> | null): FieldAccessor<T> | null
19
12
  export function useField<T>(ref: FieldRef<T> | null): FieldAccessor<T> | null {
20
- const store = useSnapshotStore()
21
- const meta = ref?.[FIELD_REF_META]
22
-
23
- useSyncExternalStore(
24
- meta ? (callback) => store.subscribeToEntity(meta.entityType, meta.entityId, callback) : noopSubscribe,
25
- meta ? () => store.getVersion() : noopSnapshot,
26
- meta ? () => store.getVersion() : noopSnapshot,
27
- )
28
-
29
- return ref as unknown as FieldAccessor<T> | null
13
+ return useAccessor(ref)
30
14
  }