@genesislcap/foundation-forms 14.445.2-chore-fix-ag-grid-types-react.3 → 14.446.0-canary.1

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.
@@ -789,6 +789,88 @@
789
789
  }
790
790
  ]
791
791
  },
792
+ {
793
+ "kind": "javascript-module",
794
+ "path": "src/react-extras.ts",
795
+ "declarations": [
796
+ {
797
+ "kind": "variable",
798
+ "name": "renderersWithReact",
799
+ "type": {
800
+ "text": "RendererEntry[]"
801
+ },
802
+ "default": "[...renderers, ReactSlotControlRendererEntry]",
803
+ "description": "Default renderers plus the React slot entry. Assign to `form.renderers` (or\nspread into `additionalRenderers`) when your `UiSchema` uses `options.render`.",
804
+ "privacy": "public"
805
+ }
806
+ ],
807
+ "exports": [
808
+ {
809
+ "kind": "js",
810
+ "name": "FoundationReactSlot",
811
+ "declaration": {
812
+ "name": "FoundationReactSlot",
813
+ "module": "./jsonforms/renderers/foundation-react-slot"
814
+ }
815
+ },
816
+ {
817
+ "kind": "js",
818
+ "name": "type",
819
+ "declaration": {
820
+ "name": "type",
821
+ "module": "./jsonforms/renderers/foundation-react-slot"
822
+ }
823
+ },
824
+ {
825
+ "kind": "js",
826
+ "name": "ReactSlotRenderContext",
827
+ "declaration": {
828
+ "name": "ReactSlotRenderContext",
829
+ "module": "./jsonforms/renderers/foundation-react-slot"
830
+ }
831
+ },
832
+ {
833
+ "kind": "js",
834
+ "name": "type",
835
+ "declaration": {
836
+ "name": "type",
837
+ "module": "./jsonforms/renderers/foundation-react-slot"
838
+ }
839
+ },
840
+ {
841
+ "kind": "js",
842
+ "name": "ReactSlotRenderFn",
843
+ "declaration": {
844
+ "name": "ReactSlotRenderFn",
845
+ "module": "./jsonforms/renderers/foundation-react-slot"
846
+ }
847
+ },
848
+ {
849
+ "kind": "js",
850
+ "name": "ReactSlotControlRendererEntry",
851
+ "declaration": {
852
+ "name": "ReactSlotControlRendererEntry",
853
+ "module": "./jsonforms/renderers/ReactSlotControlRenderer"
854
+ }
855
+ },
856
+ {
857
+ "kind": "js",
858
+ "name": "ReactSlotControlRendererTemplate",
859
+ "declaration": {
860
+ "name": "ReactSlotControlRendererTemplate",
861
+ "module": "./jsonforms/renderers/ReactSlotControlRenderer"
862
+ }
863
+ },
864
+ {
865
+ "kind": "js",
866
+ "name": "renderersWithReact",
867
+ "declaration": {
868
+ "name": "renderersWithReact",
869
+ "module": "src/react-extras.ts"
870
+ }
871
+ }
872
+ ]
873
+ },
792
874
  {
793
875
  "kind": "javascript-module",
794
876
  "path": "src/types.ts",
@@ -3389,6 +3471,55 @@
3389
3471
  }
3390
3472
  ]
3391
3473
  },
3474
+ {
3475
+ "kind": "javascript-module",
3476
+ "path": "src/jsonforms/renderers/ReactSlotControlRenderer.ts",
3477
+ "declarations": [
3478
+ {
3479
+ "kind": "function",
3480
+ "name": "ReactSlotControlRendererTemplate",
3481
+ "parameters": [
3482
+ {
3483
+ "name": "prefix",
3484
+ "default": "'rapid'",
3485
+ "type": {
3486
+ "text": "string"
3487
+ }
3488
+ }
3489
+ ],
3490
+ "description": "Template that mounts a `<foundation-react-slot>` inside the standard control\nwrapper (label + error + description). Selected when a control's\n`options.render` is a function.",
3491
+ "privacy": "public"
3492
+ },
3493
+ {
3494
+ "kind": "variable",
3495
+ "name": "ReactSlotControlRendererEntry",
3496
+ "type": {
3497
+ "text": "RendererEntry"
3498
+ },
3499
+ "default": "{\n renderer: html<DispatchRenderer>`\n ${(x) => ReactSlotControlRendererTemplate(x.prefix)}\n `,\n tester: rankWith(REACT_SLOT_CONTROL_RANK, optionIs('render')),\n mapper: mapStateToControlProps,\n}",
3500
+ "description": "Renderer entry that mounts a React node returned from `options.render`.\nConcat onto a form's `additionalRenderers` (or use the `renderersWithReact`\nconvenience array from `@genesislcap/foundation-forms/react-extras`) to opt in.",
3501
+ "privacy": "public"
3502
+ }
3503
+ ],
3504
+ "exports": [
3505
+ {
3506
+ "kind": "js",
3507
+ "name": "ReactSlotControlRendererTemplate",
3508
+ "declaration": {
3509
+ "name": "ReactSlotControlRendererTemplate",
3510
+ "module": "src/jsonforms/renderers/ReactSlotControlRenderer.ts"
3511
+ }
3512
+ },
3513
+ {
3514
+ "kind": "js",
3515
+ "name": "ReactSlotControlRendererEntry",
3516
+ "declaration": {
3517
+ "name": "ReactSlotControlRendererEntry",
3518
+ "module": "src/jsonforms/renderers/ReactSlotControlRenderer.ts"
3519
+ }
3520
+ }
3521
+ ]
3522
+ },
3392
3523
  {
3393
3524
  "kind": "javascript-module",
3394
3525
  "path": "src/jsonforms/renderers/RenderersRanks.ts",
@@ -3568,6 +3699,14 @@
3568
3699
  "text": "number"
3569
3700
  },
3570
3701
  "default": "5"
3702
+ },
3703
+ {
3704
+ "kind": "variable",
3705
+ "name": "REACT_SLOT_CONTROL_RANK",
3706
+ "type": {
3707
+ "text": "number"
3708
+ },
3709
+ "default": "100"
3571
3710
  }
3572
3711
  ],
3573
3712
  "exports": [
@@ -3746,6 +3885,14 @@
3746
3885
  "name": "SEGMENTED_CONTROL_RANK",
3747
3886
  "module": "src/jsonforms/renderers/RenderersRanks.ts"
3748
3887
  }
3888
+ },
3889
+ {
3890
+ "kind": "js",
3891
+ "name": "REACT_SLOT_CONTROL_RANK",
3892
+ "declaration": {
3893
+ "name": "REACT_SLOT_CONTROL_RANK",
3894
+ "module": "src/jsonforms/renderers/RenderersRanks.ts"
3895
+ }
3749
3896
  }
3750
3897
  ]
3751
3898
  },
@@ -4264,6 +4411,148 @@
4264
4411
  }
4265
4412
  ]
4266
4413
  },
4414
+ {
4415
+ "kind": "javascript-module",
4416
+ "path": "src/jsonforms/renderers/foundation-react-slot.ts",
4417
+ "declarations": [
4418
+ {
4419
+ "kind": "class",
4420
+ "description": "Light-DOM FAST element that hosts a React tree returned by a `UiSchema`\n`options.render` function. Mounts a React root on `connectedCallback`,\nunmounts on `disconnectedCallback`, and re-renders whenever any of its\nobservable props change.\n\n`shadowOptions: null` keeps rendering in light DOM so that `createRoot(this)`\nmounts into the host element itself and consumer/global CSS applies normally.",
4421
+ "name": "FoundationReactSlot",
4422
+ "members": [
4423
+ {
4424
+ "kind": "field",
4425
+ "name": "render",
4426
+ "type": {
4427
+ "text": "ReactSlotRenderFn | undefined"
4428
+ }
4429
+ },
4430
+ {
4431
+ "kind": "field",
4432
+ "name": "data",
4433
+ "type": {
4434
+ "text": "unknown"
4435
+ }
4436
+ },
4437
+ {
4438
+ "kind": "field",
4439
+ "name": "controlData",
4440
+ "type": {
4441
+ "text": "unknown"
4442
+ }
4443
+ },
4444
+ {
4445
+ "kind": "field",
4446
+ "name": "path",
4447
+ "type": {
4448
+ "text": "string"
4449
+ },
4450
+ "default": "''"
4451
+ },
4452
+ {
4453
+ "kind": "field",
4454
+ "name": "handleChange",
4455
+ "type": {
4456
+ "text": "((path: string, value: unknown) => void) | undefined"
4457
+ }
4458
+ },
4459
+ {
4460
+ "kind": "field",
4461
+ "name": "root",
4462
+ "type": {
4463
+ "text": "Root | null"
4464
+ },
4465
+ "privacy": "private",
4466
+ "default": "null"
4467
+ },
4468
+ {
4469
+ "kind": "method",
4470
+ "name": "renderChanged",
4471
+ "privacy": "protected",
4472
+ "return": {
4473
+ "type": {
4474
+ "text": "void"
4475
+ }
4476
+ }
4477
+ },
4478
+ {
4479
+ "kind": "method",
4480
+ "name": "dataChanged",
4481
+ "privacy": "protected",
4482
+ "return": {
4483
+ "type": {
4484
+ "text": "void"
4485
+ }
4486
+ }
4487
+ },
4488
+ {
4489
+ "kind": "method",
4490
+ "name": "controlDataChanged",
4491
+ "privacy": "protected",
4492
+ "return": {
4493
+ "type": {
4494
+ "text": "void"
4495
+ }
4496
+ }
4497
+ },
4498
+ {
4499
+ "kind": "method",
4500
+ "name": "pathChanged",
4501
+ "privacy": "protected",
4502
+ "return": {
4503
+ "type": {
4504
+ "text": "void"
4505
+ }
4506
+ }
4507
+ },
4508
+ {
4509
+ "kind": "method",
4510
+ "name": "handleChangeChanged",
4511
+ "privacy": "protected",
4512
+ "return": {
4513
+ "type": {
4514
+ "text": "void"
4515
+ }
4516
+ }
4517
+ },
4518
+ {
4519
+ "kind": "method",
4520
+ "name": "flush",
4521
+ "privacy": "private",
4522
+ "return": {
4523
+ "type": {
4524
+ "text": "void"
4525
+ }
4526
+ }
4527
+ }
4528
+ ],
4529
+ "superclass": {
4530
+ "name": "FASTElement",
4531
+ "package": "@microsoft/fast-element"
4532
+ },
4533
+ "tagName": "foundation-react-slot",
4534
+ "customElement": true
4535
+ }
4536
+ ],
4537
+ "exports": [
4538
+ {
4539
+ "kind": "js",
4540
+ "name": "FoundationReactSlot",
4541
+ "declaration": {
4542
+ "name": "FoundationReactSlot",
4543
+ "module": "src/jsonforms/renderers/foundation-react-slot.ts"
4544
+ }
4545
+ },
4546
+ {
4547
+ "kind": "custom-element-definition",
4548
+ "name": "foundation-react-slot",
4549
+ "declaration": {
4550
+ "name": "FoundationReactSlot",
4551
+ "module": "src/jsonforms/renderers/foundation-react-slot.ts"
4552
+ }
4553
+ }
4554
+ ]
4555
+ },
4267
4556
  {
4268
4557
  "kind": "javascript-module",
4269
4558
  "path": "src/jsonforms/testers/isArray.ts",
@@ -0,0 +1,20 @@
1
+ import { RendererEntry } from '../../types';
2
+ import { DispatchRenderer } from './dispatch-renderer';
3
+ import './foundation-react-slot';
4
+ /**
5
+ * Template that mounts a `<foundation-react-slot>` inside the standard control
6
+ * wrapper (label + error + description). Selected when a control's
7
+ * `options.render` is a function.
8
+ *
9
+ * @public
10
+ */
11
+ export declare const ReactSlotControlRendererTemplate: (prefix?: string) => import("@microsoft/fast-element").ViewTemplate<DispatchRenderer, any>;
12
+ /**
13
+ * Renderer entry that mounts a React node returned from `options.render`.
14
+ * Concat onto a form's `additionalRenderers` (or use the `renderersWithReact`
15
+ * convenience array from `@genesislcap/foundation-forms/react-extras`) to opt in.
16
+ *
17
+ * @public
18
+ */
19
+ export declare const ReactSlotControlRendererEntry: RendererEntry;
20
+ //# sourceMappingURL=ReactSlotControlRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactSlotControlRenderer.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/ReactSlotControlRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,yBAAyB,CAAC;AAGjC;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,GAC3C,SAAQ,MAAgB,0EAgBzB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,6BAA6B,EAAE,aAM3C,CAAC"}
@@ -20,4 +20,5 @@ export declare const INVISIBLE_CONTROL_RANK = 5;
20
20
  export declare const DIVIDER_CONTROL_RANK = 5;
21
21
  export declare const ENUM_RADIO_GROUP_CONTROL_RANK = 10;
22
22
  export declare const SEGMENTED_CONTROL_RANK = 5;
23
+ export declare const REACT_SLOT_CONTROL_RANK = 100;
23
24
  //# sourceMappingURL=RenderersRanks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RenderersRanks.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/RenderersRanks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,mCAAmC,IAAI,CAAC;AACrD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,sBAAsB,IAAI,CAAC"}
1
+ {"version":3,"file":"RenderersRanks.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/RenderersRanks.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,mCAAmC,IAAI,CAAC;AACrD,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,6BAA6B,KAAK,CAAC;AAChD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,uBAAuB,MAAM,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { FASTElement } from '@microsoft/fast-element';
2
+ import type { ReactNode } from 'react';
3
+ /**
4
+ * Context object passed to a `UiSchema` `options.render` function alongside the
5
+ * full form data. Mirrors the subset of JSON Forms control props that a
6
+ * read-only or two-way React widget needs.
7
+ *
8
+ * @public
9
+ */
10
+ export interface ReactSlotRenderContext {
11
+ /** Value at the control's scope (the slice of `formData` this control is bound to). */
12
+ controlData: unknown;
13
+ /** JSON-pointer-style path the control was mounted at. Pass to `handleChange`. */
14
+ path: string;
15
+ /** Writes `value` back into the form's data at `path` and triggers re-validation. */
16
+ handleChange: (path: string, value: unknown) => void;
17
+ }
18
+ /**
19
+ * Signature for a `UiSchema` `options.render` function.
20
+ *
21
+ * @public
22
+ */
23
+ export type ReactSlotRenderFn = (formData: unknown, ctx: ReactSlotRenderContext) => ReactNode;
24
+ /**
25
+ * Light-DOM FAST element that hosts a React tree returned by a `UiSchema`
26
+ * `options.render` function. Mounts a React root on `connectedCallback`,
27
+ * unmounts on `disconnectedCallback`, and re-renders whenever any of its
28
+ * observable props change.
29
+ *
30
+ * `shadowOptions: null` keeps rendering in light DOM so that `createRoot(this)`
31
+ * mounts into the host element itself and consumer/global CSS applies normally.
32
+ *
33
+ * @public
34
+ */
35
+ export declare class FoundationReactSlot extends FASTElement {
36
+ render: ReactSlotRenderFn | undefined;
37
+ data: unknown;
38
+ controlData: unknown;
39
+ path: string;
40
+ handleChange: ((path: string, value: unknown) => void) | undefined;
41
+ private root;
42
+ connectedCallback(): void;
43
+ disconnectedCallback(): void;
44
+ protected renderChanged(): void;
45
+ protected dataChanged(): void;
46
+ protected controlDataChanged(): void;
47
+ protected pathChanged(): void;
48
+ protected handleChangeChanged(): void;
49
+ private flush;
50
+ }
51
+ //# sourceMappingURL=foundation-react-slot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foundation-react-slot.d.ts","sourceRoot":"","sources":["../../../../src/jsonforms/renderers/foundation-react-slot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAc,MAAM,yBAAyB,CAAC;AACjF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,uFAAuF;IACvF,WAAW,EAAE,OAAO,CAAC;IACrB,kFAAkF;IAClF,IAAI,EAAE,MAAM,CAAC;IACb,qFAAqF;IACrF,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACtD;AAED;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,sBAAsB,KAAK,SAAS,CAAC;AAM9F;;;;;;;;;;GAUG;AACH,qBACa,mBAAoB,SAAQ,WAAW;IACtC,MAAM,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAM;IAClB,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAE/E,OAAO,CAAC,IAAI,CAAqB;IAExB,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAMrC,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B,SAAS,CAAC,kBAAkB,IAAI,IAAI;IAIpC,SAAS,CAAC,WAAW,IAAI,IAAI;IAI7B,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAIrC,OAAO,CAAC,KAAK;CAWd"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * `@genesislcap/foundation-forms/react-extras`
3
+ *
4
+ * Opt-in entry point that adds support for `UiSchema` `options.render` returning
5
+ * a React node, without dragging React/react-dom into the main `foundation-forms`
6
+ * bundle. FAST-only consumers should never import this file.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import {
11
+ * renderersWithReact,
12
+ * type ReactSlotRendererOptions,
13
+ * } from '@genesislcap/foundation-forms/react-extras';
14
+ *
15
+ * // On the form element:
16
+ * form.renderers = renderersWithReact;
17
+ *
18
+ * const uischema = {
19
+ * type: 'Control',
20
+ * scope: '#/properties/CUSTOM_PANEL',
21
+ * options: <ReactSlotRendererOptions>{
22
+ * render: (formData) => <MyPanel data={formData} />,
23
+ * },
24
+ * };
25
+ * ```
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+ import type { ReactSlotRenderFn } from './jsonforms/renderers/foundation-react-slot';
30
+ import type { RendererEntry } from './types';
31
+ declare module './types' {
32
+ interface StandardRendererOptions {
33
+ /**
34
+ * Render a React component in place of the default control. Receives the
35
+ * full live form `data` and a context object with the control-scoped
36
+ * `controlData`, the JSON-pointer `path` to this field, and a
37
+ * `handleChange` callback that writes back into the form's data.
38
+ *
39
+ * Activates the renderer entry shipped from
40
+ * `@genesislcap/foundation-forms/react-extras`. Requires `react` and
41
+ * `react-dom` as peer dependencies of the host app.
42
+ */
43
+ render?: ReactSlotRenderFn;
44
+ }
45
+ }
46
+ export { FoundationReactSlot, type ReactSlotRenderContext, type ReactSlotRenderFn, } from './jsonforms/renderers/foundation-react-slot';
47
+ export { ReactSlotControlRendererEntry, ReactSlotControlRendererTemplate, } from './jsonforms/renderers/ReactSlotControlRenderer';
48
+ /**
49
+ * Default renderers plus the React slot entry. Assign to `form.renderers` (or
50
+ * spread into `additionalRenderers`) when your `UiSchema` uses `options.render`.
51
+ *
52
+ * @public
53
+ */
54
+ export declare const renderersWithReact: RendererEntry[];
55
+ /**
56
+ * Configuration options that activate the React slot renderer on a `Control`
57
+ * element. The control with `options.render` set wins over every default
58
+ * renderer (rank 100).
59
+ *
60
+ * The React function receives the **full live form `data`** plus a context
61
+ * object with the bound `controlData`, the control's `path`, and a
62
+ * `handleChange(path, value)` callback for writing back into the form.
63
+ *
64
+ * `react` and `react-dom` must be installed by the host app (declared as
65
+ * optional peer dependencies of `@genesislcap/foundation-forms`).
66
+ *
67
+ * @public
68
+ */
69
+ export interface ReactSlotRendererOptions {
70
+ /**
71
+ * Render a React component in place of the default control. Receives the
72
+ * current full form `data` and a context object with the control-scoped
73
+ * `controlData`, the JSON-pointer `path` to this field, and a `handleChange`
74
+ * callback that writes back into the form's data.
75
+ */
76
+ render: import('./jsonforms/renderers/foundation-react-slot').ReactSlotRenderFn;
77
+ }
78
+ //# sourceMappingURL=react-extras.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-extras.d.ts","sourceRoot":"","sources":["../../src/react-extras.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAM7C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,uBAAuB;QAC/B;;;;;;;;;WASG;QACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;KAC5B;CACF;AAED,OAAO,EACL,mBAAmB,EACnB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,6BAA6B,EAC7B,gCAAgC,GACjC,MAAM,gDAAgD,CAAC;AAExD;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAAkD,CAAC;AAEjG;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;OAKG;IACH,MAAM,EAAE,OAAO,6CAA6C,EAAE,iBAAiB,CAAC;CACjF"}
@@ -14,6 +14,7 @@ import type { LayoutWrapper as LayoutWrapperWC } from './jsonforms/renderers/Lay
14
14
  import type { StepperWrapper as StepperWrapperWC } from './jsonforms/renderers/StepperWrapperRenderer';
15
15
  import type { VerticalCategorizationWrapper as VerticalCategorizationWrapperWC } from './jsonforms/renderers/VerticalCategorizationWrapperRenderer';
16
16
  import type { DispatchRenderer as DispatchRendererWC } from './jsonforms/renderers/dispatch-renderer';
17
+ import type { FoundationReactSlot as FoundationReactSlotWC } from './jsonforms/renderers/foundation-react-slot';
17
18
 
18
19
  /** @internal Maps a web component class to its public props only.
19
20
  * keyof T skips private/protected members, so this avoids the TS error
@@ -147,4 +148,13 @@ export declare const DispatchRenderer: React.ForwardRefExoticComponent<
147
148
  >;
148
149
  export type DispatchRendererRef = DispatchRendererWC;
149
150
 
151
+ export declare const FoundationReactSlot: React.ForwardRefExoticComponent<
152
+ React.PropsWithChildren<
153
+ Omit<PublicOf<FoundationReactSlotWC>, 'children' | 'style'> &
154
+ HTMLWCProps & {
155
+ }
156
+ > & React.RefAttributes<FoundationReactSlotWC>
157
+ >;
158
+ export type FoundationReactSlotRef = FoundationReactSlotWC;
159
+
150
160
  export {};
@@ -482,9 +482,14 @@ export type NumberRendererOptions = {
482
482
  };
483
483
  /**
484
484
  * Standard configuration options available for all renderers.
485
+ *
486
+ * Declared as an `interface` (not a `type` alias) so opt-in sub-entries can
487
+ * extend it via TypeScript module augmentation — e.g. `react-extras` adds an
488
+ * optional `render` field without forcing React types into FAST-only builds.
489
+ *
485
490
  * @public
486
491
  */
487
- export type StandardRendererOptions = {
492
+ export interface StandardRendererOptions {
488
493
  /**
489
494
  * Setting this property allows you to enable read only mode for the renderer.
490
495
  * @public
@@ -519,7 +524,7 @@ export type StandardRendererOptions = {
519
524
  * @public
520
525
  */
521
526
  useNumberControl?: boolean;
522
- };
527
+ }
523
528
  /**
524
529
  * Configuration options for the segmented control renderer.
525
530
  * Activated when `segmented: true` is set on a UI schema element's options.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { mapStateToControlProps, rankWith } from '@jsonforms/core';
2
+ import { html } from '@microsoft/fast-element';
3
+ import { optionIs } from '../testers/optionIs';
4
+ import { controlWrapperTemplate } from './ControlWrapperRenderer';
5
+ // Importing the slot file registers `<foundation-react-slot>` as a side effect.
6
+ import './foundation-react-slot';
7
+ import { REACT_SLOT_CONTROL_RANK } from './RenderersRanks';
8
+ /**
9
+ * Template that mounts a `<foundation-react-slot>` inside the standard control
10
+ * wrapper (label + error + description). Selected when a control's
11
+ * `options.render` is a function.
12
+ *
13
+ * @public
14
+ */
15
+ export const ReactSlotControlRendererTemplate = (prefix = 'rapid') => html `
16
+ <template>
17
+ ${controlWrapperTemplate({
18
+ prefix,
19
+ innerTemplate: html `
20
+ <foundation-react-slot
21
+ :render=${(x) => { var _a, _b; return (_b = (_a = x.control.uischema) === null || _a === void 0 ? void 0 : _a.options) === null || _b === void 0 ? void 0 : _b.render; }}
22
+ :data=${(x) => { var _a, _b; return (_b = (_a = x.jsonforms) === null || _a === void 0 ? void 0 : _a.core) === null || _b === void 0 ? void 0 : _b.data; }}
23
+ :controlData=${(x) => x.control.data}
24
+ :path=${(x) => x.control.path}
25
+ :handleChange=${(x) => x.control.handleChange}
26
+ ></foundation-react-slot>
27
+ `,
28
+ })}
29
+ </template>
30
+ `;
31
+ /**
32
+ * Renderer entry that mounts a React node returned from `options.render`.
33
+ * Concat onto a form's `additionalRenderers` (or use the `renderersWithReact`
34
+ * convenience array from `@genesislcap/foundation-forms/react-extras`) to opt in.
35
+ *
36
+ * @public
37
+ */
38
+ export const ReactSlotControlRendererEntry = {
39
+ renderer: html `
40
+ ${(x) => ReactSlotControlRendererTemplate(x.prefix)}
41
+ `,
42
+ tester: rankWith(REACT_SLOT_CONTROL_RANK, optionIs('render')),
43
+ mapper: mapStateToControlProps,
44
+ };
@@ -20,3 +20,4 @@ export const INVISIBLE_CONTROL_RANK = 5;
20
20
  export const DIVIDER_CONTROL_RANK = 5;
21
21
  export const ENUM_RADIO_GROUP_CONTROL_RANK = 10;
22
22
  export const SEGMENTED_CONTROL_RANK = 5;
23
+ export const REACT_SLOT_CONTROL_RANK = 100;
@@ -0,0 +1,81 @@
1
+ import { __decorate } from "tslib";
2
+ import { customElement, FASTElement, observable } from '@microsoft/fast-element';
3
+ import { createRoot } from 'react-dom/client';
4
+ const noopHandleChange = (_path, _value) => {
5
+ /* no-op when host did not provide a change handler */
6
+ };
7
+ /**
8
+ * Light-DOM FAST element that hosts a React tree returned by a `UiSchema`
9
+ * `options.render` function. Mounts a React root on `connectedCallback`,
10
+ * unmounts on `disconnectedCallback`, and re-renders whenever any of its
11
+ * observable props change.
12
+ *
13
+ * `shadowOptions: null` keeps rendering in light DOM so that `createRoot(this)`
14
+ * mounts into the host element itself and consumer/global CSS applies normally.
15
+ *
16
+ * @public
17
+ */
18
+ let FoundationReactSlot = class FoundationReactSlot extends FASTElement {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.path = '';
22
+ this.root = null;
23
+ }
24
+ connectedCallback() {
25
+ super.connectedCallback();
26
+ this.root = createRoot(this);
27
+ this.flush();
28
+ }
29
+ disconnectedCallback() {
30
+ var _a;
31
+ super.disconnectedCallback();
32
+ (_a = this.root) === null || _a === void 0 ? void 0 : _a.unmount();
33
+ this.root = null;
34
+ }
35
+ renderChanged() {
36
+ this.flush();
37
+ }
38
+ dataChanged() {
39
+ this.flush();
40
+ }
41
+ controlDataChanged() {
42
+ this.flush();
43
+ }
44
+ pathChanged() {
45
+ this.flush();
46
+ }
47
+ handleChangeChanged() {
48
+ this.flush();
49
+ }
50
+ flush() {
51
+ var _a;
52
+ if (!this.root || typeof this.render !== 'function') {
53
+ return;
54
+ }
55
+ const node = this.render(this.data, {
56
+ controlData: this.controlData,
57
+ path: this.path,
58
+ handleChange: (_a = this.handleChange) !== null && _a !== void 0 ? _a : noopHandleChange,
59
+ });
60
+ this.root.render(node);
61
+ }
62
+ };
63
+ __decorate([
64
+ observable
65
+ ], FoundationReactSlot.prototype, "render", void 0);
66
+ __decorate([
67
+ observable
68
+ ], FoundationReactSlot.prototype, "data", void 0);
69
+ __decorate([
70
+ observable
71
+ ], FoundationReactSlot.prototype, "controlData", void 0);
72
+ __decorate([
73
+ observable
74
+ ], FoundationReactSlot.prototype, "path", void 0);
75
+ __decorate([
76
+ observable
77
+ ], FoundationReactSlot.prototype, "handleChange", void 0);
78
+ FoundationReactSlot = __decorate([
79
+ customElement({ name: 'foundation-react-slot', shadowOptions: null })
80
+ ], FoundationReactSlot);
81
+ export { FoundationReactSlot };
@@ -0,0 +1,39 @@
1
+ /**
2
+ * `@genesislcap/foundation-forms/react-extras`
3
+ *
4
+ * Opt-in entry point that adds support for `UiSchema` `options.render` returning
5
+ * a React node, without dragging React/react-dom into the main `foundation-forms`
6
+ * bundle. FAST-only consumers should never import this file.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * import {
11
+ * renderersWithReact,
12
+ * type ReactSlotRendererOptions,
13
+ * } from '@genesislcap/foundation-forms/react-extras';
14
+ *
15
+ * // On the form element:
16
+ * form.renderers = renderersWithReact;
17
+ *
18
+ * const uischema = {
19
+ * type: 'Control',
20
+ * scope: '#/properties/CUSTOM_PANEL',
21
+ * options: <ReactSlotRendererOptions>{
22
+ * render: (formData) => <MyPanel data={formData} />,
23
+ * },
24
+ * };
25
+ * ```
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+ import { renderers } from './form';
30
+ import { ReactSlotControlRendererEntry } from './jsonforms/renderers/ReactSlotControlRenderer';
31
+ export { FoundationReactSlot, } from './jsonforms/renderers/foundation-react-slot';
32
+ export { ReactSlotControlRendererEntry, ReactSlotControlRendererTemplate, } from './jsonforms/renderers/ReactSlotControlRenderer';
33
+ /**
34
+ * Default renderers plus the React slot entry. Assign to `form.renderers` (or
35
+ * spread into `additionalRenderers`) when your `UiSchema` uses `options.render`.
36
+ *
37
+ * @public
38
+ */
39
+ export const renderersWithReact = [...renderers, ReactSlotControlRendererEntry];
@@ -3982,7 +3982,7 @@
3982
3982
  {
3983
3983
  "kind": "Reference",
3984
3984
  "text": "StandardRendererOptions",
3985
- "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:type"
3985
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:interface"
3986
3986
  },
3987
3987
  {
3988
3988
  "kind": "Content",
@@ -4002,39 +4002,220 @@
4002
4002
  }
4003
4003
  },
4004
4004
  {
4005
- "kind": "TypeAlias",
4006
- "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:type",
4007
- "docComment": "/**\n * Standard configuration options available for all renderers.\n *\n * @public\n */\n",
4005
+ "kind": "Interface",
4006
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:interface",
4007
+ "docComment": "/**\n * Standard configuration options available for all renderers.\n *\n * Declared as an `interface` (not a `type` alias) so opt-in sub-entries can extend it via TypeScript module augmentation — e.g. `react-extras` adds an optional `render` field without forcing React types into FAST-only builds.\n *\n * @public\n */\n",
4008
4008
  "excerptTokens": [
4009
4009
  {
4010
4010
  "kind": "Content",
4011
- "text": "export type StandardRendererOptions = "
4011
+ "text": "export interface StandardRendererOptions "
4012
+ }
4013
+ ],
4014
+ "fileUrlPath": "src/types.ts",
4015
+ "releaseTag": "Public",
4016
+ "name": "StandardRendererOptions",
4017
+ "preserveMemberOrder": false,
4018
+ "members": [
4019
+ {
4020
+ "kind": "PropertySignature",
4021
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions#hidden:member",
4022
+ "docComment": "/**\n * Setting this property allows you to hide the renderer.\n *\n * @public\n */\n",
4023
+ "excerptTokens": [
4024
+ {
4025
+ "kind": "Content",
4026
+ "text": "hidden?: "
4027
+ },
4028
+ {
4029
+ "kind": "Content",
4030
+ "text": "boolean"
4031
+ },
4032
+ {
4033
+ "kind": "Content",
4034
+ "text": ";"
4035
+ }
4036
+ ],
4037
+ "isReadonly": false,
4038
+ "isOptional": true,
4039
+ "releaseTag": "Public",
4040
+ "name": "hidden",
4041
+ "propertyTypeTokenRange": {
4042
+ "startIndex": 1,
4043
+ "endIndex": 2
4044
+ }
4012
4045
  },
4013
4046
  {
4014
- "kind": "Content",
4015
- "text": "{\n readonly?: boolean;\n hidden?: boolean;\n validateFn?: (data: any, path: string, label: string) => "
4047
+ "kind": "PropertySignature",
4048
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions#i18n:member",
4049
+ "docComment": "",
4050
+ "excerptTokens": [
4051
+ {
4052
+ "kind": "Content",
4053
+ "text": "i18n?: "
4054
+ },
4055
+ {
4056
+ "kind": "Content",
4057
+ "text": "{\n [key: string]: any;\n }"
4058
+ },
4059
+ {
4060
+ "kind": "Content",
4061
+ "text": ";"
4062
+ }
4063
+ ],
4064
+ "isReadonly": false,
4065
+ "isOptional": true,
4066
+ "releaseTag": "Public",
4067
+ "name": "i18n",
4068
+ "propertyTypeTokenRange": {
4069
+ "startIndex": 1,
4070
+ "endIndex": 2
4071
+ }
4016
4072
  },
4017
4073
  {
4018
- "kind": "Reference",
4019
- "text": "ErrorObject",
4020
- "canonicalReference": "ajv!ErrorObject:interface"
4074
+ "kind": "PropertySignature",
4075
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions#readonly:member",
4076
+ "docComment": "/**\n * Setting this property allows you to enable read only mode for the renderer.\n *\n * @public\n */\n",
4077
+ "excerptTokens": [
4078
+ {
4079
+ "kind": "Content",
4080
+ "text": "readonly?: "
4081
+ },
4082
+ {
4083
+ "kind": "Content",
4084
+ "text": "boolean"
4085
+ },
4086
+ {
4087
+ "kind": "Content",
4088
+ "text": ";"
4089
+ }
4090
+ ],
4091
+ "isReadonly": false,
4092
+ "isOptional": true,
4093
+ "releaseTag": "Public",
4094
+ "name": "readonly",
4095
+ "propertyTypeTokenRange": {
4096
+ "startIndex": 1,
4097
+ "endIndex": 2
4098
+ }
4021
4099
  },
4022
4100
  {
4023
- "kind": "Content",
4024
- "text": "[];\n i18n?: {\n [key: string]: any;\n };\n tooltip?: string;\n tabIndex?: number;\n useNumberControl?: boolean;\n}"
4101
+ "kind": "PropertySignature",
4102
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions#tabIndex:member",
4103
+ "docComment": "/**\n * Sets the tabIndex attribute for the renderer component.\n *\n * @public\n */\n",
4104
+ "excerptTokens": [
4105
+ {
4106
+ "kind": "Content",
4107
+ "text": "tabIndex?: "
4108
+ },
4109
+ {
4110
+ "kind": "Content",
4111
+ "text": "number"
4112
+ },
4113
+ {
4114
+ "kind": "Content",
4115
+ "text": ";"
4116
+ }
4117
+ ],
4118
+ "isReadonly": false,
4119
+ "isOptional": true,
4120
+ "releaseTag": "Public",
4121
+ "name": "tabIndex",
4122
+ "propertyTypeTokenRange": {
4123
+ "startIndex": 1,
4124
+ "endIndex": 2
4125
+ }
4025
4126
  },
4026
4127
  {
4027
- "kind": "Content",
4028
- "text": ";"
4128
+ "kind": "PropertySignature",
4129
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions#tooltip:member",
4130
+ "docComment": "/**\n * Setting this property allows you to enable tooltip next to the label.\n *\n * @public\n */\n",
4131
+ "excerptTokens": [
4132
+ {
4133
+ "kind": "Content",
4134
+ "text": "tooltip?: "
4135
+ },
4136
+ {
4137
+ "kind": "Content",
4138
+ "text": "string"
4139
+ },
4140
+ {
4141
+ "kind": "Content",
4142
+ "text": ";"
4143
+ }
4144
+ ],
4145
+ "isReadonly": false,
4146
+ "isOptional": true,
4147
+ "releaseTag": "Public",
4148
+ "name": "tooltip",
4149
+ "propertyTypeTokenRange": {
4150
+ "startIndex": 1,
4151
+ "endIndex": 2
4152
+ }
4153
+ },
4154
+ {
4155
+ "kind": "PropertySignature",
4156
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions#useNumberControl:member",
4157
+ "docComment": "/**\n * When true on a `Control`, selects the number control renderer even if JSON Schema does not declare `number` or `integer` (for example metadata that types a numeric field as `string`).\n *\n * @public\n */\n",
4158
+ "excerptTokens": [
4159
+ {
4160
+ "kind": "Content",
4161
+ "text": "useNumberControl?: "
4162
+ },
4163
+ {
4164
+ "kind": "Content",
4165
+ "text": "boolean"
4166
+ },
4167
+ {
4168
+ "kind": "Content",
4169
+ "text": ";"
4170
+ }
4171
+ ],
4172
+ "isReadonly": false,
4173
+ "isOptional": true,
4174
+ "releaseTag": "Public",
4175
+ "name": "useNumberControl",
4176
+ "propertyTypeTokenRange": {
4177
+ "startIndex": 1,
4178
+ "endIndex": 2
4179
+ }
4180
+ },
4181
+ {
4182
+ "kind": "PropertySignature",
4183
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions#validateFn:member",
4184
+ "docComment": "/**\n * Setting this property enables client-side validation.\n *\n * @public\n */\n",
4185
+ "excerptTokens": [
4186
+ {
4187
+ "kind": "Content",
4188
+ "text": "validateFn?: "
4189
+ },
4190
+ {
4191
+ "kind": "Content",
4192
+ "text": "(data: any, path: string, label: string) => "
4193
+ },
4194
+ {
4195
+ "kind": "Reference",
4196
+ "text": "ErrorObject",
4197
+ "canonicalReference": "ajv!ErrorObject:interface"
4198
+ },
4199
+ {
4200
+ "kind": "Content",
4201
+ "text": "[]"
4202
+ },
4203
+ {
4204
+ "kind": "Content",
4205
+ "text": ";"
4206
+ }
4207
+ ],
4208
+ "isReadonly": false,
4209
+ "isOptional": true,
4210
+ "releaseTag": "Public",
4211
+ "name": "validateFn",
4212
+ "propertyTypeTokenRange": {
4213
+ "startIndex": 1,
4214
+ "endIndex": 4
4215
+ }
4029
4216
  }
4030
4217
  ],
4031
- "fileUrlPath": "src/types.ts",
4032
- "releaseTag": "Public",
4033
- "name": "StandardRendererOptions",
4034
- "typeTokenRange": {
4035
- "startIndex": 1,
4036
- "endIndex": 4
4037
- }
4218
+ "extendsTokenRanges": []
4038
4219
  },
4039
4220
  {
4040
4221
  "kind": "TypeAlias",
@@ -4277,7 +4458,7 @@
4277
4458
  {
4278
4459
  "kind": "Reference",
4279
4460
  "text": "StandardRendererOptions",
4280
- "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:type"
4461
+ "canonicalReference": "@genesislcap/foundation-forms!StandardRendererOptions:interface"
4281
4462
  },
4282
4463
  {
4283
4464
  "kind": "Content",
@@ -2109,9 +2109,14 @@ export declare type SegmentedRendererOptions = StandardRendererOptions & {
2109
2109
 
2110
2110
  /**
2111
2111
  * Standard configuration options available for all renderers.
2112
+ *
2113
+ * Declared as an `interface` (not a `type` alias) so opt-in sub-entries can
2114
+ * extend it via TypeScript module augmentation — e.g. `react-extras` adds an
2115
+ * optional `render` field without forcing React types into FAST-only builds.
2116
+ *
2112
2117
  * @public
2113
2118
  */
2114
- export declare type StandardRendererOptions = {
2119
+ export declare interface StandardRendererOptions {
2115
2120
  /**
2116
2121
  * Setting this property allows you to enable read only mode for the renderer.
2117
2122
  * @public
@@ -2146,7 +2151,7 @@ export declare type StandardRendererOptions = {
2146
2151
  * @public
2147
2152
  */
2148
2153
  useNumberControl?: boolean;
2149
- };
2154
+ }
2150
2155
 
2151
2156
  /**
2152
2157
  * Orientation options available for stepper renderer.
package/dist/react.cjs CHANGED
@@ -16,6 +16,7 @@ const { LayoutWrapper: LayoutWrapperWC } = require('./esm/jsonforms/renderers/La
16
16
  const { StepperWrapper: StepperWrapperWC } = require('./esm/jsonforms/renderers/StepperWrapperRenderer.js');
17
17
  const { VerticalCategorizationWrapper: VerticalCategorizationWrapperWC } = require('./esm/jsonforms/renderers/VerticalCategorizationWrapperRenderer.js');
18
18
  const { DispatchRenderer: DispatchRendererWC } = require('./esm/jsonforms/renderers/dispatch-renderer.js');
19
+ const { FoundationReactSlot: FoundationReactSlotWC } = require('./esm/jsonforms/renderers/foundation-react-slot.js');
19
20
 
20
21
  function _mergeRefs(...refs) {
21
22
  return (value) => {
@@ -155,6 +156,11 @@ const DispatchRenderer = React.forwardRef(function DispatchRenderer(props, ref)
155
156
  return React.createElement(customElements.getName(DispatchRendererWC) ?? 'dispatch-renderer', { ...rest, ref }, children);
156
157
  });
157
158
 
159
+ const FoundationReactSlot = React.forwardRef(function FoundationReactSlot(props, ref) {
160
+ const { children, ...rest } = props;
161
+ return React.createElement(customElements.getName(FoundationReactSlotWC) ?? 'foundation-react-slot', { ...rest, ref }, children);
162
+ });
163
+
158
164
  module.exports = {
159
165
  Form,
160
166
  Filters,
@@ -166,4 +172,5 @@ module.exports = {
166
172
  StepperWrapper,
167
173
  VerticalCategorizationWrapper,
168
174
  DispatchRenderer,
175
+ FoundationReactSlot,
169
176
  };
package/dist/react.mjs CHANGED
@@ -14,6 +14,7 @@ import { LayoutWrapper as LayoutWrapperWC } from './esm/jsonforms/renderers/Layo
14
14
  import { StepperWrapper as StepperWrapperWC } from './esm/jsonforms/renderers/StepperWrapperRenderer.js';
15
15
  import { VerticalCategorizationWrapper as VerticalCategorizationWrapperWC } from './esm/jsonforms/renderers/VerticalCategorizationWrapperRenderer.js';
16
16
  import { DispatchRenderer as DispatchRendererWC } from './esm/jsonforms/renderers/dispatch-renderer.js';
17
+ import { FoundationReactSlot as FoundationReactSlotWC } from './esm/jsonforms/renderers/foundation-react-slot.js';
17
18
 
18
19
  function _mergeRefs(...refs) {
19
20
  return (value) => {
@@ -152,3 +153,8 @@ export const DispatchRenderer = React.forwardRef(function DispatchRenderer(props
152
153
  const { children, ...rest } = props;
153
154
  return React.createElement(customElements.getName(DispatchRendererWC) ?? 'dispatch-renderer', { ...rest, ref }, children);
154
155
  });
156
+
157
+ export const FoundationReactSlot = React.forwardRef(function FoundationReactSlot(props, ref) {
158
+ const { children, ...rest } = props;
159
+ return React.createElement(customElements.getName(FoundationReactSlotWC) ?? 'foundation-react-slot', { ...rest, ref }, children);
160
+ });
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-forms",
3
3
  "description": "Genesis Foundation Forms",
4
- "version": "14.445.2-chore-fix-ag-grid-types-react.3",
4
+ "version": "14.446.0-canary.1",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -19,6 +19,10 @@
19
19
  "types": "./dist/dts/react.d.ts",
20
20
  "import": "./dist/react.mjs",
21
21
  "require": "./dist/react.cjs"
22
+ },
23
+ "./react-extras": {
24
+ "types": "./dist/dts/react-extras.d.ts",
25
+ "default": "./dist/esm/react-extras.js"
22
26
  }
23
27
  },
24
28
  "config": {
@@ -55,23 +59,35 @@
55
59
  }
56
60
  },
57
61
  "devDependencies": {
58
- "@genesislcap/foundation-testing": "14.445.2-chore-fix-ag-grid-types-react.3",
59
- "@genesislcap/genx": "14.445.2-chore-fix-ag-grid-types-react.3",
60
- "@genesislcap/rollup-builder": "14.445.2-chore-fix-ag-grid-types-react.3",
61
- "@genesislcap/ts-builder": "14.445.2-chore-fix-ag-grid-types-react.3",
62
- "@genesislcap/uvu-playwright-builder": "14.445.2-chore-fix-ag-grid-types-react.3",
63
- "@genesislcap/vite-builder": "14.445.2-chore-fix-ag-grid-types-react.3",
64
- "@genesislcap/webpack-builder": "14.445.2-chore-fix-ag-grid-types-react.3",
62
+ "@genesislcap/foundation-testing": "14.446.0-canary.1",
63
+ "@genesislcap/genx": "14.446.0-canary.1",
64
+ "@genesislcap/rollup-builder": "14.446.0-canary.1",
65
+ "@genesislcap/ts-builder": "14.446.0-canary.1",
66
+ "@genesislcap/uvu-playwright-builder": "14.446.0-canary.1",
67
+ "@genesislcap/vite-builder": "14.446.0-canary.1",
68
+ "@genesislcap/webpack-builder": "14.446.0-canary.1",
65
69
  "@types/json-schema": "^7.0.11",
66
70
  "@types/papaparse": "^5.3.14"
67
71
  },
72
+ "peerDependencies": {
73
+ "react": "^19.0.0",
74
+ "react-dom": "^19.0.0"
75
+ },
76
+ "peerDependenciesMeta": {
77
+ "react": {
78
+ "optional": true
79
+ },
80
+ "react-dom": {
81
+ "optional": true
82
+ }
83
+ },
68
84
  "dependencies": {
69
- "@genesislcap/foundation-comms": "14.445.2-chore-fix-ag-grid-types-react.3",
70
- "@genesislcap/foundation-criteria": "14.445.2-chore-fix-ag-grid-types-react.3",
71
- "@genesislcap/foundation-logger": "14.445.2-chore-fix-ag-grid-types-react.3",
72
- "@genesislcap/foundation-notifications": "14.445.2-chore-fix-ag-grid-types-react.3",
73
- "@genesislcap/foundation-ui": "14.445.2-chore-fix-ag-grid-types-react.3",
74
- "@genesislcap/foundation-utils": "14.445.2-chore-fix-ag-grid-types-react.3",
85
+ "@genesislcap/foundation-comms": "14.446.0-canary.1",
86
+ "@genesislcap/foundation-criteria": "14.446.0-canary.1",
87
+ "@genesislcap/foundation-logger": "14.446.0-canary.1",
88
+ "@genesislcap/foundation-notifications": "14.446.0-canary.1",
89
+ "@genesislcap/foundation-ui": "14.446.0-canary.1",
90
+ "@genesislcap/foundation-utils": "14.446.0-canary.1",
75
91
  "@json-schema-tools/dereferencer": "^1.6.1",
76
92
  "@jsonforms/core": "^3.2.1",
77
93
  "@microsoft/fast-components": "2.30.6",
@@ -93,5 +109,5 @@
93
109
  "access": "public"
94
110
  },
95
111
  "customElements": "dist/custom-elements.json",
96
- "gitHead": "9bae6a71c4c119eb16264d4a01d8615e5cb0a44e"
112
+ "gitHead": "a023fcbc9ddf2e08249425219a33b2573ad0f51e"
97
113
  }