@contember/react-block-repeater 2.0.0-alpha.6 → 2.0.0-alpha.8

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 (85) hide show
  1. package/api-extractor.json +3 -0
  2. package/dist/development/index.cjs +5 -5
  3. package/dist/development/index.js +5 -5
  4. package/dist/{production → development/src}/components/Block.cjs +7 -3
  5. package/dist/development/src/components/Block.cjs.map +1 -0
  6. package/dist/{production → development/src}/components/Block.js +7 -3
  7. package/dist/development/src/components/Block.js.map +1 -0
  8. package/dist/development/src/components/BlockRepeater.cjs +38 -0
  9. package/dist/development/src/components/BlockRepeater.cjs.map +1 -0
  10. package/dist/development/src/components/BlockRepeater.js +38 -0
  11. package/dist/development/src/components/BlockRepeater.js.map +1 -0
  12. package/dist/development/{components → src/components}/BlockRepeaterAddItemTrigger.cjs +8 -4
  13. package/dist/development/src/components/BlockRepeaterAddItemTrigger.cjs.map +1 -0
  14. package/dist/{production → development/src}/components/BlockRepeaterAddItemTrigger.js +6 -2
  15. package/dist/development/src/components/BlockRepeaterAddItemTrigger.js.map +1 -0
  16. package/dist/development/src/contexts.cjs.map +1 -0
  17. package/dist/development/src/contexts.js.map +1 -0
  18. package/dist/development/src/hooks/useBlockRepeaterCurrentBlock.cjs.map +1 -0
  19. package/dist/development/src/hooks/useBlockRepeaterCurrentBlock.js.map +1 -0
  20. package/dist/development/src/internal/helpers/staticAnalyzer.cjs.map +1 -0
  21. package/dist/development/src/internal/helpers/staticAnalyzer.js.map +1 -0
  22. package/dist/production/index.cjs +5 -5
  23. package/dist/production/index.js +5 -5
  24. package/dist/production/src/components/Block.cjs.map +1 -0
  25. package/dist/production/src/components/Block.js.map +1 -0
  26. package/dist/{development → production/src}/components/BlockRepeater.cjs +2 -2
  27. package/dist/production/src/components/BlockRepeater.cjs.map +1 -0
  28. package/dist/production/src/components/BlockRepeater.js.map +1 -0
  29. package/dist/production/{components → src/components}/BlockRepeaterAddItemTrigger.cjs +2 -2
  30. package/dist/production/src/components/BlockRepeaterAddItemTrigger.cjs.map +1 -0
  31. package/dist/production/src/components/BlockRepeaterAddItemTrigger.js.map +1 -0
  32. package/dist/production/src/contexts.cjs.map +1 -0
  33. package/dist/production/src/contexts.js.map +1 -0
  34. package/dist/production/src/hooks/useBlockRepeaterCurrentBlock.cjs.map +1 -0
  35. package/dist/production/src/hooks/useBlockRepeaterCurrentBlock.js.map +1 -0
  36. package/dist/production/src/internal/helpers/staticAnalyzer.cjs.map +1 -0
  37. package/dist/production/src/internal/helpers/staticAnalyzer.js.map +1 -0
  38. package/dist/types/contexts.d.ts +2 -2
  39. package/dist/types/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +8 -16
  41. package/src/components/BlockRepeater.tsx +3 -3
  42. package/tsconfig.json +7 -0
  43. package/tsdoc.json +6 -0
  44. package/dist/development/components/Block.cjs.map +0 -1
  45. package/dist/development/components/Block.js.map +0 -1
  46. package/dist/development/components/BlockRepeater.cjs.map +0 -1
  47. package/dist/development/components/BlockRepeater.js.map +0 -1
  48. package/dist/development/components/BlockRepeaterAddItemTrigger.cjs.map +0 -1
  49. package/dist/development/components/BlockRepeaterAddItemTrigger.js.map +0 -1
  50. package/dist/development/contexts.cjs.map +0 -1
  51. package/dist/development/contexts.js.map +0 -1
  52. package/dist/development/hooks/useBlockRepeaterCurrentBlock.cjs.map +0 -1
  53. package/dist/development/hooks/useBlockRepeaterCurrentBlock.js.map +0 -1
  54. package/dist/development/internal/helpers/staticAnalyzer.cjs.map +0 -1
  55. package/dist/development/internal/helpers/staticAnalyzer.js.map +0 -1
  56. package/dist/production/components/Block.cjs.map +0 -1
  57. package/dist/production/components/Block.js.map +0 -1
  58. package/dist/production/components/BlockRepeater.cjs +0 -22
  59. package/dist/production/components/BlockRepeater.cjs.map +0 -1
  60. package/dist/production/components/BlockRepeater.js +0 -22
  61. package/dist/production/components/BlockRepeater.js.map +0 -1
  62. package/dist/production/components/BlockRepeaterAddItemTrigger.cjs.map +0 -1
  63. package/dist/production/components/BlockRepeaterAddItemTrigger.js.map +0 -1
  64. package/dist/production/contexts.cjs.map +0 -1
  65. package/dist/production/contexts.js.map +0 -1
  66. package/dist/production/hooks/useBlockRepeaterCurrentBlock.cjs.map +0 -1
  67. package/dist/production/hooks/useBlockRepeaterCurrentBlock.js.map +0 -1
  68. package/dist/production/internal/helpers/staticAnalyzer.cjs.map +0 -1
  69. package/dist/production/internal/helpers/staticAnalyzer.js.map +0 -1
  70. /package/dist/development/{contexts.cjs → src/contexts.cjs} +0 -0
  71. /package/dist/development/{contexts.js → src/contexts.js} +0 -0
  72. /package/dist/development/{hooks → src/hooks}/useBlockRepeaterCurrentBlock.cjs +0 -0
  73. /package/dist/development/{hooks → src/hooks}/useBlockRepeaterCurrentBlock.js +0 -0
  74. /package/dist/development/{internal → src/internal}/helpers/staticAnalyzer.cjs +0 -0
  75. /package/dist/development/{internal → src/internal}/helpers/staticAnalyzer.js +0 -0
  76. /package/dist/{development → production/src}/components/Block.cjs +0 -0
  77. /package/dist/{development → production/src}/components/Block.js +0 -0
  78. /package/dist/{development → production/src}/components/BlockRepeater.js +0 -0
  79. /package/dist/{development → production/src}/components/BlockRepeaterAddItemTrigger.js +0 -0
  80. /package/dist/production/{contexts.cjs → src/contexts.cjs} +0 -0
  81. /package/dist/production/{contexts.js → src/contexts.js} +0 -0
  82. /package/dist/production/{hooks → src/hooks}/useBlockRepeaterCurrentBlock.cjs +0 -0
  83. /package/dist/production/{hooks → src/hooks}/useBlockRepeaterCurrentBlock.js +0 -0
  84. /package/dist/production/{internal → src/internal}/helpers/staticAnalyzer.cjs +0 -0
  85. /package/dist/production/{internal → src/internal}/helpers/staticAnalyzer.js +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ "extends": "../../build/api-extractor.json"
3
+ }
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const contexts = require("./contexts.cjs");
4
- const Block = require("./components/Block.cjs");
5
- const BlockRepeater = require("./components/BlockRepeater.cjs");
6
- const BlockRepeaterAddItemTrigger = require("./components/BlockRepeaterAddItemTrigger.cjs");
7
- const useBlockRepeaterCurrentBlock = require("./hooks/useBlockRepeaterCurrentBlock.cjs");
3
+ const contexts = require("./src/contexts.cjs");
4
+ const Block = require("./src/components/Block.cjs");
5
+ const BlockRepeater = require("./src/components/BlockRepeater.cjs");
6
+ const BlockRepeaterAddItemTrigger = require("./src/components/BlockRepeaterAddItemTrigger.cjs");
7
+ const useBlockRepeaterCurrentBlock = require("./src/hooks/useBlockRepeaterCurrentBlock.cjs");
8
8
  exports.BlockRepeaterConfigContext = contexts.BlockRepeaterConfigContext;
9
9
  exports.useBlockRepeaterConfig = contexts.useBlockRepeaterConfig;
10
10
  exports.Block = Block.Block;
@@ -1,8 +1,8 @@
1
- import { BlockRepeaterConfigContext, useBlockRepeaterConfig } from "./contexts.js";
2
- import { Block } from "./components/Block.js";
3
- import { BlockRepeater } from "./components/BlockRepeater.js";
4
- import { BlockRepeaterAddItemTrigger } from "./components/BlockRepeaterAddItemTrigger.js";
5
- import { useBlockRepeaterCurrentBlock } from "./hooks/useBlockRepeaterCurrentBlock.js";
1
+ import { BlockRepeaterConfigContext, useBlockRepeaterConfig } from "./src/contexts.js";
2
+ import { Block } from "./src/components/Block.js";
3
+ import { BlockRepeater } from "./src/components/BlockRepeater.js";
4
+ import { BlockRepeaterAddItemTrigger } from "./src/components/BlockRepeaterAddItemTrigger.js";
5
+ import { useBlockRepeaterCurrentBlock } from "./src/hooks/useBlockRepeaterCurrentBlock.js";
6
6
  export {
7
7
  Block,
8
8
  BlockRepeater,
@@ -1,15 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
3
+ const jsxDevRuntime = require("react/jsx-dev-runtime");
4
4
  const reactBinding = require("@contember/react-binding");
5
5
  const Block = reactBinding.Component((props) => {
6
6
  throw new reactBinding.BindingError('"Block" component is not supposed to be rendered.');
7
7
  }, ({ label, children, form }) => {
8
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8
+ return /* @__PURE__ */ jsxDevRuntime.jsxDEV(jsxDevRuntime.Fragment, { children: [
9
9
  label,
10
10
  children,
11
11
  form
12
- ] });
12
+ ] }, void 0, true, {
13
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/Block.tsx",
14
+ lineNumber: 14,
15
+ columnNumber: 9
16
+ }, void 0);
13
17
  });
14
18
  exports.Block = Block;
15
19
  //# sourceMappingURL=Block.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.cjs","sources":["../../../../../packages/react-block-repeater/src/components/Block.tsx"],"sourcesContent":["import { BindingError, Component } from '@contember/react-binding'\nimport { ReactNode } from 'react'\n\nexport interface BlockProps {\n\tchildren: ReactNode\n\tname: string\n\tlabel?: ReactNode\n\tform?: ReactNode\n}\n\nexport const Block = Component<BlockProps>(props => {\n\tthrow new BindingError('\"Block\" component is not supposed to be rendered.')\n}, ({ label, children, form }) => {\n\treturn <>\n\t\t{label}\n\t\t{children}\n\t\t{form}\n\t</>\n})\n"],"names":["Component","BindingError","jsxDEV","Fragment","this"],"mappings":";;;;AAUa,MAAA,QAAQA,aAAAA,UAAsB,CAAS,UAAA;AAC7C,QAAA,IAAIC,aAAAA,aAAa,mDAAmD;AAC3E,GAAG,CAAC,EAAE,OAAO,UAAU,WAAW;AACjC,SACEC,8BAAA,OAAAC,wBAAA,EAAA,UAAA;AAAA,IAAA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,KAHK,QAAA,MAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAIP,GAAAC,MAAA;AACD,CAAC;;"}
@@ -1,13 +1,17 @@
1
- import { jsxs, Fragment } from "react/jsx-runtime";
1
+ import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
2
2
  import { Component, BindingError } from "@contember/react-binding";
3
3
  const Block = Component((props) => {
4
4
  throw new BindingError('"Block" component is not supposed to be rendered.');
5
5
  }, ({ label, children, form }) => {
6
- return /* @__PURE__ */ jsxs(Fragment, { children: [
6
+ return /* @__PURE__ */ jsxDEV(Fragment, { children: [
7
7
  label,
8
8
  children,
9
9
  form
10
- ] });
10
+ ] }, void 0, true, {
11
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/Block.tsx",
12
+ lineNumber: 14,
13
+ columnNumber: 9
14
+ }, void 0);
11
15
  });
12
16
  export {
13
17
  Block
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.js","sources":["../../../../../packages/react-block-repeater/src/components/Block.tsx"],"sourcesContent":["import { BindingError, Component } from '@contember/react-binding'\nimport { ReactNode } from 'react'\n\nexport interface BlockProps {\n\tchildren: ReactNode\n\tname: string\n\tlabel?: ReactNode\n\tform?: ReactNode\n}\n\nexport const Block = Component<BlockProps>(props => {\n\tthrow new BindingError('\"Block\" component is not supposed to be rendered.')\n}, ({ label, children, form }) => {\n\treturn <>\n\t\t{label}\n\t\t{children}\n\t\t{form}\n\t</>\n})\n"],"names":["this"],"mappings":";;AAUa,MAAA,QAAQ,UAAsB,CAAS,UAAA;AAC7C,QAAA,IAAI,aAAa,mDAAmD;AAC3E,GAAG,CAAC,EAAE,OAAO,UAAU,WAAW;AACjC,SACE,uBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,KAHK,QAAA,MAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAIP,GAAAA,MAAA;AACD,CAAC;"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxDevRuntime = require("react/jsx-dev-runtime");
4
+ const reactBinding = require("@contember/react-binding");
5
+ const reactRepeater = require("@contember/react-repeater");
6
+ const React = require("react");
7
+ const staticAnalyzer = require("../internal/helpers/staticAnalyzer.cjs");
8
+ const contexts = require("../contexts.cjs");
9
+ const BlockRepeater = reactBinding.Component(({ children, ...props }, env) => {
10
+ const [blocks] = React.useState(() => staticAnalyzer.extractBlocks(children, env));
11
+ if (Object.keys(blocks).length === 0) {
12
+ throw new Error("BlockRepeater must have at least one Block child");
13
+ }
14
+ return /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactRepeater.Repeater, { ...props, initialEntityCount: 0, children: /* @__PURE__ */ jsxDevRuntime.jsxDEV(contexts.BlockRepeaterConfigContext.Provider, { value: { discriminatedBy: props.discriminationField, blocks }, children }, void 0, false, {
15
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
16
+ lineNumber: 21,
17
+ columnNumber: 4
18
+ }, void 0) }, void 0, false, {
19
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
20
+ lineNumber: 20,
21
+ columnNumber: 3
22
+ }, void 0);
23
+ }, (props) => {
24
+ return /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactRepeater.Repeater, { ...props, children: [
25
+ props.children,
26
+ /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactBinding.Field, { field: props.discriminationField }, void 0, false, {
27
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
28
+ lineNumber: 30,
29
+ columnNumber: 4
30
+ }, void 0)
31
+ ] }, void 0, true, {
32
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
33
+ lineNumber: 28,
34
+ columnNumber: 3
35
+ }, void 0);
36
+ });
37
+ exports.BlockRepeater = BlockRepeater;
38
+ //# sourceMappingURL=BlockRepeater.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeater.cjs","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeater.tsx"],"sourcesContent":["import { Component, Field, SugaredRelativeSingleField } from '@contember/react-binding'\nimport { Repeater, RepeaterProps } from '@contember/react-repeater'\nimport { useState } from 'react'\nimport { extractBlocks } from '../internal/helpers/staticAnalyzer'\nimport { BlockRepeaterConfigContext } from '../contexts'\n\nexport type BlockRepeaterProps =\n\t& {\n\t\tsortableBy: RepeaterProps['sortableBy']\n\t\tdiscriminationField: SugaredRelativeSingleField['field']\n\t}\n\t& RepeaterProps\n\nexport const BlockRepeater = Component<BlockRepeaterProps>(({ children, ...props }, env) => {\n\tconst [blocks] = useState(() => extractBlocks(children, env))\n\tif (Object.keys(blocks).length === 0) {\n\t\tthrow new Error('BlockRepeater must have at least one Block child')\n\t}\n\treturn (\n\t\t<Repeater {...props} initialEntityCount={0}>\n\t\t\t<BlockRepeaterConfigContext.Provider value={{ discriminatedBy: props.discriminationField, blocks }}>\n\t\t\t\t{children}\n\t\t\t</BlockRepeaterConfigContext.Provider>\n\t\t</Repeater>\n\t)\n}, props => {\n\treturn (\n\t\t<Repeater {...props}>\n\t\t\t{props.children}\n\t\t\t<Field field={props.discriminationField} />\n\t\t</Repeater>\n\t)\n})\n"],"names":["Component","useState","extractBlocks","Repeater","jsxDEV","BlockRepeaterConfigContext","this","Field"],"mappings":";;;;;;;;AAaa,MAAA,gBAAgBA,uBAA8B,CAAC,EAAE,UAAU,GAAG,SAAS,QAAQ;AACrF,QAAA,CAAC,MAAM,IAAIC,MAAA,SAAS,MAAMC,eAAAA,cAAc,UAAU,GAAG,CAAC;AAC5D,MAAI,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AAC/B,UAAA,IAAI,MAAM,kDAAkD;AAAA,EACnE;AACA,8CACEC,wBAAU,EAAA,GAAG,OAAO,oBAAoB,GACxC,UAACC,8BAAA,OAAAC,oCAA2B,UAA3B,EAAoC,OAAO,EAAE,iBAAiB,MAAM,qBAAqB,UACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAC,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAIA,GAAAA,MAAA;AAEF,GAAG,CAAS,UAAA;AAEV,SAAAF,8BAAA,OAACD,cAAU,UAAA,EAAA,GAAG,OACZ,UAAA;AAAA,IAAM,MAAA;AAAA,IACNC,qCAAAG,aAAAA,OAAA,EAAM,OAAO,MAAM,uBAApB,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAyC,GAAAD,MAAA;AAAA,EAAA,KAF1C,QAAA,MAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAGA,GAAAA,MAAA;AAEF,CAAC;;"}
@@ -0,0 +1,38 @@
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
2
+ import { Component, Field } from "@contember/react-binding";
3
+ import { Repeater } from "@contember/react-repeater";
4
+ import { useState } from "react";
5
+ import { extractBlocks } from "../internal/helpers/staticAnalyzer.js";
6
+ import { BlockRepeaterConfigContext } from "../contexts.js";
7
+ const BlockRepeater = Component(({ children, ...props }, env) => {
8
+ const [blocks] = useState(() => extractBlocks(children, env));
9
+ if (Object.keys(blocks).length === 0) {
10
+ throw new Error("BlockRepeater must have at least one Block child");
11
+ }
12
+ return /* @__PURE__ */ jsxDEV(Repeater, { ...props, initialEntityCount: 0, children: /* @__PURE__ */ jsxDEV(BlockRepeaterConfigContext.Provider, { value: { discriminatedBy: props.discriminationField, blocks }, children }, void 0, false, {
13
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
14
+ lineNumber: 21,
15
+ columnNumber: 4
16
+ }, void 0) }, void 0, false, {
17
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
18
+ lineNumber: 20,
19
+ columnNumber: 3
20
+ }, void 0);
21
+ }, (props) => {
22
+ return /* @__PURE__ */ jsxDEV(Repeater, { ...props, children: [
23
+ props.children,
24
+ /* @__PURE__ */ jsxDEV(Field, { field: props.discriminationField }, void 0, false, {
25
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
26
+ lineNumber: 30,
27
+ columnNumber: 4
28
+ }, void 0)
29
+ ] }, void 0, true, {
30
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeater.tsx",
31
+ lineNumber: 28,
32
+ columnNumber: 3
33
+ }, void 0);
34
+ });
35
+ export {
36
+ BlockRepeater
37
+ };
38
+ //# sourceMappingURL=BlockRepeater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeater.js","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeater.tsx"],"sourcesContent":["import { Component, Field, SugaredRelativeSingleField } from '@contember/react-binding'\nimport { Repeater, RepeaterProps } from '@contember/react-repeater'\nimport { useState } from 'react'\nimport { extractBlocks } from '../internal/helpers/staticAnalyzer'\nimport { BlockRepeaterConfigContext } from '../contexts'\n\nexport type BlockRepeaterProps =\n\t& {\n\t\tsortableBy: RepeaterProps['sortableBy']\n\t\tdiscriminationField: SugaredRelativeSingleField['field']\n\t}\n\t& RepeaterProps\n\nexport const BlockRepeater = Component<BlockRepeaterProps>(({ children, ...props }, env) => {\n\tconst [blocks] = useState(() => extractBlocks(children, env))\n\tif (Object.keys(blocks).length === 0) {\n\t\tthrow new Error('BlockRepeater must have at least one Block child')\n\t}\n\treturn (\n\t\t<Repeater {...props} initialEntityCount={0}>\n\t\t\t<BlockRepeaterConfigContext.Provider value={{ discriminatedBy: props.discriminationField, blocks }}>\n\t\t\t\t{children}\n\t\t\t</BlockRepeaterConfigContext.Provider>\n\t\t</Repeater>\n\t)\n}, props => {\n\treturn (\n\t\t<Repeater {...props}>\n\t\t\t{props.children}\n\t\t\t<Field field={props.discriminationField} />\n\t\t</Repeater>\n\t)\n})\n"],"names":["this"],"mappings":";;;;;;AAaa,MAAA,gBAAgB,UAA8B,CAAC,EAAE,UAAU,GAAG,SAAS,QAAQ;AACrF,QAAA,CAAC,MAAM,IAAI,SAAS,MAAM,cAAc,UAAU,GAAG,CAAC;AAC5D,MAAI,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AAC/B,UAAA,IAAI,MAAM,kDAAkD;AAAA,EACnE;AACA,gCACE,UAAU,EAAA,GAAG,OAAO,oBAAoB,GACxC,UAAC,uBAAA,2BAA2B,UAA3B,EAAoC,OAAO,EAAE,iBAAiB,MAAM,qBAAqB,UACxF,SADF,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAA,GAAAA,MAEA,EAHD,GAAA,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAIA,GAAAA,MAAA;AAEF,GAAG,CAAS,UAAA;AAEV,SAAA,uBAAC,UAAU,EAAA,GAAG,OACZ,UAAA;AAAA,IAAM,MAAA;AAAA,IACN,uBAAA,OAAA,EAAM,OAAO,MAAM,uBAApB,QAAA,OAAA;AAAA,MAAA,UAAA;AAAA,MAAA,YAAA;AAAA,MAAA,cAAA;AAAA,IAAyC,GAAAA,MAAA;AAAA,EAAA,KAF1C,QAAA,MAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAGA,GAAAA,MAAA;AAEF,CAAC;"}
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const jsxRuntime = require("react/jsx-runtime");
3
+ const jsxDevRuntime = require("react/jsx-dev-runtime");
4
4
  const reactSlot = require("@radix-ui/react-slot");
5
5
  const contexts = require("../contexts.cjs");
6
- const react = require("react");
6
+ const React = require("react");
7
7
  const reactRepeater = require("@contember/react-repeater");
8
8
  const BlockRepeaterAddItemTrigger = ({ preprocess, index, type, ...props }) => {
9
9
  const { discriminatedBy } = contexts.useBlockRepeaterConfig();
10
10
  const { addItem } = reactRepeater.useRepeaterMethods();
11
- const onClick = react.useMemo(() => () => addItem?.(index, (it) => {
11
+ const onClick = React.useMemo(() => () => addItem?.(index, (it) => {
12
12
  it().getField(discriminatedBy).updateValue(type);
13
13
  }), [addItem, discriminatedBy, index, type]);
14
- return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { onClick, ...props });
14
+ return /* @__PURE__ */ jsxDevRuntime.jsxDEV(reactSlot.Slot, { onClick, ...props }, void 0, false, {
15
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeaterAddItemTrigger.tsx",
16
+ lineNumber: 22,
17
+ columnNumber: 9
18
+ }, void 0);
15
19
  };
16
20
  exports.BlockRepeaterAddItemTrigger = BlockRepeaterAddItemTrigger;
17
21
  //# sourceMappingURL=BlockRepeaterAddItemTrigger.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeaterAddItemTrigger.cjs","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeaterAddItemTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { useBlockRepeaterConfig } from '../contexts'\nimport React, { ReactElement, useMemo } from 'react'\nimport { EntityAccessor } from '@contember/react-binding'\nimport { RepeaterAddItemIndex, useRepeaterMethods } from '@contember/react-repeater'\n\nexport interface BlockRepeaterAddItemTriggerProps {\n\tchildren: ReactElement\n\ttype: string\n\tindex?: RepeaterAddItemIndex\n\tpreprocess?: EntityAccessor.BatchUpdatesHandler\n}\n\nexport const BlockRepeaterAddItemTrigger = ({ preprocess, index, type, ...props }: BlockRepeaterAddItemTriggerProps) => {\n\tconst { discriminatedBy } = useBlockRepeaterConfig()\n\n\tconst { addItem } = useRepeaterMethods()\n\tconst onClick = useMemo(() => () => addItem?.(index, it => {\n\t\tit().getField(discriminatedBy).updateValue(type)\n\t}), [addItem, discriminatedBy, index, type])\n\n\treturn <Slot onClick={onClick} {...props} />\n}\n"],"names":["useBlockRepeaterConfig","useRepeaterMethods","useMemo","jsxDEV","Slot","this"],"mappings":";;;;;;;AAaa,MAAA,8BAA8B,CAAC,EAAE,YAAY,OAAO,MAAM,GAAG,YAA8C;AACjH,QAAA,EAAE,oBAAoBA,SAAAA;AAEtB,QAAA,EAAE,YAAYC,cAAAA;AACpB,QAAM,UAAUC,MAAAA,QAAQ,MAAM,MAAM,UAAU,OAAO,CAAM,OAAA;AAC1D,OAAA,EAAK,SAAS,eAAe,EAAE,YAAY,IAAI;AAAA,EAAA,CAC/C,GAAG,CAAC,SAAS,iBAAiB,OAAO,IAAI,CAAC;AAE3C,SAAQC,8BAAA,OAAAC,UAAA,MAAA,EAAK,SAAmB,GAAG,SAA5B,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAmC,GAAAC,MAAA;AAC3C;;"}
@@ -1,4 +1,4 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
2
2
  import { Slot } from "@radix-ui/react-slot";
3
3
  import { useBlockRepeaterConfig } from "../contexts.js";
4
4
  import { useMemo } from "react";
@@ -9,7 +9,11 @@ const BlockRepeaterAddItemTrigger = ({ preprocess, index, type, ...props }) => {
9
9
  const onClick = useMemo(() => () => addItem?.(index, (it) => {
10
10
  it().getField(discriminatedBy).updateValue(type);
11
11
  }), [addItem, discriminatedBy, index, type]);
12
- return /* @__PURE__ */ jsx(Slot, { onClick, ...props });
12
+ return /* @__PURE__ */ jsxDEV(Slot, { onClick, ...props }, void 0, false, {
13
+ fileName: "/home/runner/work/contember/contember/packages/react-block-repeater/src/components/BlockRepeaterAddItemTrigger.tsx",
14
+ lineNumber: 22,
15
+ columnNumber: 9
16
+ }, void 0);
13
17
  };
14
18
  export {
15
19
  BlockRepeaterAddItemTrigger
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeaterAddItemTrigger.js","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeaterAddItemTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { useBlockRepeaterConfig } from '../contexts'\nimport React, { ReactElement, useMemo } from 'react'\nimport { EntityAccessor } from '@contember/react-binding'\nimport { RepeaterAddItemIndex, useRepeaterMethods } from '@contember/react-repeater'\n\nexport interface BlockRepeaterAddItemTriggerProps {\n\tchildren: ReactElement\n\ttype: string\n\tindex?: RepeaterAddItemIndex\n\tpreprocess?: EntityAccessor.BatchUpdatesHandler\n}\n\nexport const BlockRepeaterAddItemTrigger = ({ preprocess, index, type, ...props }: BlockRepeaterAddItemTriggerProps) => {\n\tconst { discriminatedBy } = useBlockRepeaterConfig()\n\n\tconst { addItem } = useRepeaterMethods()\n\tconst onClick = useMemo(() => () => addItem?.(index, it => {\n\t\tit().getField(discriminatedBy).updateValue(type)\n\t}), [addItem, discriminatedBy, index, type])\n\n\treturn <Slot onClick={onClick} {...props} />\n}\n"],"names":["this"],"mappings":";;;;;AAaa,MAAA,8BAA8B,CAAC,EAAE,YAAY,OAAO,MAAM,GAAG,YAA8C;AACjH,QAAA,EAAE,oBAAoB;AAEtB,QAAA,EAAE,YAAY;AACpB,QAAM,UAAU,QAAQ,MAAM,MAAM,UAAU,OAAO,CAAM,OAAA;AAC1D,OAAA,EAAK,SAAS,eAAe,EAAE,YAAY,IAAI;AAAA,EAAA,CAC/C,GAAG,CAAC,SAAS,iBAAiB,OAAO,IAAI,CAAC;AAE3C,SAAQ,uBAAA,MAAA,EAAK,SAAmB,GAAG,SAA5B,QAAA,OAAA;AAAA,IAAA,UAAA;AAAA,IAAA,YAAA;AAAA,IAAA,cAAA;AAAA,EAAmC,GAAAA,MAAA;AAC3C;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.cjs","sources":["../../../../packages/react-block-repeater/src/contexts.ts"],"sourcesContent":["import { SugaredRelativeSingleField } from '@contember/react-binding'\nimport { createRequiredContext } from '@contember/react-utils'\nimport { BlocksMap } from './types'\n\nconst BlockRepeaterConfigContext_ = createRequiredContext<{\n\tdiscriminatedBy: SugaredRelativeSingleField['field']\n\tblocks: BlocksMap\n}>('BlockRepeaterConfigContext')\n/** @internal */\nexport const BlockRepeaterConfigContext = BlockRepeaterConfigContext_[0]\nexport const useBlockRepeaterConfig = BlockRepeaterConfigContext_[1]\n"],"names":["createRequiredContext"],"mappings":";;;AAIA,MAAM,8BAA8BA,WAAAA,sBAGjC,4BAA4B;AAElB,MAAA,6BAA6B,4BAA4B,CAAC;AAC1D,MAAA,yBAAyB,4BAA4B,CAAC;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.js","sources":["../../../../packages/react-block-repeater/src/contexts.ts"],"sourcesContent":["import { SugaredRelativeSingleField } from '@contember/react-binding'\nimport { createRequiredContext } from '@contember/react-utils'\nimport { BlocksMap } from './types'\n\nconst BlockRepeaterConfigContext_ = createRequiredContext<{\n\tdiscriminatedBy: SugaredRelativeSingleField['field']\n\tblocks: BlocksMap\n}>('BlockRepeaterConfigContext')\n/** @internal */\nexport const BlockRepeaterConfigContext = BlockRepeaterConfigContext_[0]\nexport const useBlockRepeaterConfig = BlockRepeaterConfigContext_[1]\n"],"names":[],"mappings":";AAIA,MAAM,8BAA8B,sBAGjC,4BAA4B;AAElB,MAAA,6BAA6B,4BAA4B,CAAC;AAC1D,MAAA,yBAAyB,4BAA4B,CAAC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockRepeaterCurrentBlock.cjs","sources":["../../../../../packages/react-block-repeater/src/hooks/useBlockRepeaterCurrentBlock.ts"],"sourcesContent":["import { useEntity } from '@contember/react-binding'\nimport { useBlockRepeaterConfig } from '../contexts'\n\nexport const useBlockRepeaterCurrentBlock = () => {\n\tconst entity = useEntity()\n\tconst { discriminatedBy, blocks } = useBlockRepeaterConfig()\n\tconst field = entity.getField<string>(discriminatedBy).value\n\treturn field ? blocks[field] : undefined\n}\n"],"names":["useEntity","useBlockRepeaterConfig"],"mappings":";;;;AAGO,MAAM,+BAA+B,MAAM;AACjD,QAAM,SAASA,aAAAA;AACf,QAAM,EAAE,iBAAiB,OAAO,IAAIC,SAAuB,uBAAA;AAC3D,QAAM,QAAQ,OAAO,SAAiB,eAAe,EAAE;AAChD,SAAA,QAAQ,OAAO,KAAK,IAAI;AAChC;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockRepeaterCurrentBlock.js","sources":["../../../../../packages/react-block-repeater/src/hooks/useBlockRepeaterCurrentBlock.ts"],"sourcesContent":["import { useEntity } from '@contember/react-binding'\nimport { useBlockRepeaterConfig } from '../contexts'\n\nexport const useBlockRepeaterCurrentBlock = () => {\n\tconst entity = useEntity()\n\tconst { discriminatedBy, blocks } = useBlockRepeaterConfig()\n\tconst field = entity.getField<string>(discriminatedBy).value\n\treturn field ? blocks[field] : undefined\n}\n"],"names":[],"mappings":";;AAGO,MAAM,+BAA+B,MAAM;AACjD,QAAM,SAAS;AACf,QAAM,EAAE,iBAAiB,OAAO,IAAI,uBAAuB;AAC3D,QAAM,QAAQ,OAAO,SAAiB,eAAe,EAAE;AAChD,SAAA,QAAQ,OAAO,KAAK,IAAI;AAChC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticAnalyzer.cjs","sources":["../../../../../../packages/react-block-repeater/src/internal/helpers/staticAnalyzer.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Block, BlockProps } from '../../components'\nimport { Environment } from '@contember/react-binding'\nimport { ChildrenAnalyzer, Leaf } from '@contember/react-multipass-rendering'\n\ntype BlocksMap = Record<string, BlockProps>\nexport const extractBlocks = (children: ReactNode, env: Environment): BlocksMap => {\n\tconst blocks = blockAnalyzer.processChildren(children, env)\n\treturn Object.fromEntries(blocks.map(block => [block.name, block]))\n}\n\nconst columnLeaf = new Leaf(node => node.props, Block)\n\nconst blockAnalyzer = new ChildrenAnalyzer<\n\tBlockProps,\n\tnever,\n\tEnvironment\n>([columnLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n\tstaticContextFactoryName: 'generateEnvironment',\n\tunhandledNodeErrorMessage: 'Only Block children are supported.',\n})\n"],"names":["Leaf","Block","ChildrenAnalyzer"],"mappings":";;;;AAMa,MAAA,gBAAgB,CAAC,UAAqB,QAAgC;AAClF,QAAM,SAAS,cAAc,gBAAgB,UAAU,GAAG;AACnD,SAAA,OAAO,YAAY,OAAO,IAAI,CAAA,UAAS,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC;AACnE;AAEA,MAAM,aAAa,IAAIA,wBAAAA,KAAK,CAAQ,SAAA,KAAK,OAAOC,MAAAA,KAAK;AAErD,MAAM,gBAAgB,IAAIC,wBAAAA,iBAIxB,CAAC,UAAU,GAAG;AAAA,EACf,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,2BAA2B;AAC5B,CAAC;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticAnalyzer.js","sources":["../../../../../../packages/react-block-repeater/src/internal/helpers/staticAnalyzer.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Block, BlockProps } from '../../components'\nimport { Environment } from '@contember/react-binding'\nimport { ChildrenAnalyzer, Leaf } from '@contember/react-multipass-rendering'\n\ntype BlocksMap = Record<string, BlockProps>\nexport const extractBlocks = (children: ReactNode, env: Environment): BlocksMap => {\n\tconst blocks = blockAnalyzer.processChildren(children, env)\n\treturn Object.fromEntries(blocks.map(block => [block.name, block]))\n}\n\nconst columnLeaf = new Leaf(node => node.props, Block)\n\nconst blockAnalyzer = new ChildrenAnalyzer<\n\tBlockProps,\n\tnever,\n\tEnvironment\n>([columnLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n\tstaticContextFactoryName: 'generateEnvironment',\n\tunhandledNodeErrorMessage: 'Only Block children are supported.',\n})\n"],"names":[],"mappings":";;AAMa,MAAA,gBAAgB,CAAC,UAAqB,QAAgC;AAClF,QAAM,SAAS,cAAc,gBAAgB,UAAU,GAAG;AACnD,SAAA,OAAO,YAAY,OAAO,IAAI,CAAA,UAAS,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC;AACnE;AAEA,MAAM,aAAa,IAAI,KAAK,CAAQ,SAAA,KAAK,OAAO,KAAK;AAErD,MAAM,gBAAgB,IAAI,iBAIxB,CAAC,UAAU,GAAG;AAAA,EACf,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,2BAA2B;AAC5B,CAAC;"}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const contexts = require("./contexts.cjs");
4
- const Block = require("./components/Block.cjs");
5
- const BlockRepeater = require("./components/BlockRepeater.cjs");
6
- const BlockRepeaterAddItemTrigger = require("./components/BlockRepeaterAddItemTrigger.cjs");
7
- const useBlockRepeaterCurrentBlock = require("./hooks/useBlockRepeaterCurrentBlock.cjs");
3
+ const contexts = require("./src/contexts.cjs");
4
+ const Block = require("./src/components/Block.cjs");
5
+ const BlockRepeater = require("./src/components/BlockRepeater.cjs");
6
+ const BlockRepeaterAddItemTrigger = require("./src/components/BlockRepeaterAddItemTrigger.cjs");
7
+ const useBlockRepeaterCurrentBlock = require("./src/hooks/useBlockRepeaterCurrentBlock.cjs");
8
8
  exports.BlockRepeaterConfigContext = contexts.BlockRepeaterConfigContext;
9
9
  exports.useBlockRepeaterConfig = contexts.useBlockRepeaterConfig;
10
10
  exports.Block = Block.Block;
@@ -1,8 +1,8 @@
1
- import { BlockRepeaterConfigContext, useBlockRepeaterConfig } from "./contexts.js";
2
- import { Block } from "./components/Block.js";
3
- import { BlockRepeater } from "./components/BlockRepeater.js";
4
- import { BlockRepeaterAddItemTrigger } from "./components/BlockRepeaterAddItemTrigger.js";
5
- import { useBlockRepeaterCurrentBlock } from "./hooks/useBlockRepeaterCurrentBlock.js";
1
+ import { BlockRepeaterConfigContext, useBlockRepeaterConfig } from "./src/contexts.js";
2
+ import { Block } from "./src/components/Block.js";
3
+ import { BlockRepeater } from "./src/components/BlockRepeater.js";
4
+ import { BlockRepeaterAddItemTrigger } from "./src/components/BlockRepeaterAddItemTrigger.js";
5
+ import { useBlockRepeaterCurrentBlock } from "./src/hooks/useBlockRepeaterCurrentBlock.js";
6
6
  export {
7
7
  Block,
8
8
  BlockRepeater,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.cjs","sources":["../../../../../packages/react-block-repeater/src/components/Block.tsx"],"sourcesContent":["import { BindingError, Component } from '@contember/react-binding'\nimport { ReactNode } from 'react'\n\nexport interface BlockProps {\n\tchildren: ReactNode\n\tname: string\n\tlabel?: ReactNode\n\tform?: ReactNode\n}\n\nexport const Block = Component<BlockProps>(props => {\n\tthrow new BindingError('\"Block\" component is not supposed to be rendered.')\n}, ({ label, children, form }) => {\n\treturn <>\n\t\t{label}\n\t\t{children}\n\t\t{form}\n\t</>\n})\n"],"names":["Component","BindingError","jsxs","Fragment"],"mappings":";;;;AAUa,MAAA,QAAQA,aAAAA,UAAsB,CAAS,UAAA;AAC7C,QAAA,IAAIC,aAAAA,aAAa,mDAAmD;AAC3E,GAAG,CAAC,EAAE,OAAO,UAAU,WAAW;AACjC,SACEC,2BAAA,KAAAC,qBAAA,EAAA,UAAA;AAAA,IAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAA,CAAA;AACD,CAAC;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.js","sources":["../../../../../packages/react-block-repeater/src/components/Block.tsx"],"sourcesContent":["import { BindingError, Component } from '@contember/react-binding'\nimport { ReactNode } from 'react'\n\nexport interface BlockProps {\n\tchildren: ReactNode\n\tname: string\n\tlabel?: ReactNode\n\tform?: ReactNode\n}\n\nexport const Block = Component<BlockProps>(props => {\n\tthrow new BindingError('\"Block\" component is not supposed to be rendered.')\n}, ({ label, children, form }) => {\n\treturn <>\n\t\t{label}\n\t\t{children}\n\t\t{form}\n\t</>\n})\n"],"names":[],"mappings":";;AAUa,MAAA,QAAQ,UAAsB,CAAS,UAAA;AAC7C,QAAA,IAAI,aAAa,mDAAmD;AAC3E,GAAG,CAAC,EAAE,OAAO,UAAU,WAAW;AACjC,SACE,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAAA,CAAA;AACD,CAAC;"}
@@ -3,11 +3,11 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const reactBinding = require("@contember/react-binding");
5
5
  const reactRepeater = require("@contember/react-repeater");
6
- const react = require("react");
6
+ const React = require("react");
7
7
  const staticAnalyzer = require("../internal/helpers/staticAnalyzer.cjs");
8
8
  const contexts = require("../contexts.cjs");
9
9
  const BlockRepeater = reactBinding.Component(({ children, ...props }, env) => {
10
- const [blocks] = react.useState(() => staticAnalyzer.extractBlocks(children, env));
10
+ const [blocks] = React.useState(() => staticAnalyzer.extractBlocks(children, env));
11
11
  if (Object.keys(blocks).length === 0) {
12
12
  throw new Error("BlockRepeater must have at least one Block child");
13
13
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeater.cjs","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeater.tsx"],"sourcesContent":["import { Component, Field, SugaredRelativeSingleField } from '@contember/react-binding'\nimport { Repeater, RepeaterProps } from '@contember/react-repeater'\nimport { useState } from 'react'\nimport { extractBlocks } from '../internal/helpers/staticAnalyzer'\nimport { BlockRepeaterConfigContext } from '../contexts'\n\nexport type BlockRepeaterProps =\n\t& {\n\t\tsortableBy: RepeaterProps['sortableBy']\n\t\tdiscriminationField: SugaredRelativeSingleField['field']\n\t}\n\t& RepeaterProps\n\nexport const BlockRepeater = Component<BlockRepeaterProps>(({ children, ...props }, env) => {\n\tconst [blocks] = useState(() => extractBlocks(children, env))\n\tif (Object.keys(blocks).length === 0) {\n\t\tthrow new Error('BlockRepeater must have at least one Block child')\n\t}\n\treturn (\n\t\t<Repeater {...props} initialEntityCount={0}>\n\t\t\t<BlockRepeaterConfigContext.Provider value={{ discriminatedBy: props.discriminationField, blocks }}>\n\t\t\t\t{children}\n\t\t\t</BlockRepeaterConfigContext.Provider>\n\t\t</Repeater>\n\t)\n}, props => {\n\treturn (\n\t\t<Repeater {...props}>\n\t\t\t{props.children}\n\t\t\t<Field field={props.discriminationField} />\n\t\t</Repeater>\n\t)\n})\n"],"names":["Component","useState","extractBlocks","Repeater","BlockRepeaterConfigContext","jsxs","jsx","Field"],"mappings":";;;;;;;;AAaa,MAAA,gBAAgBA,uBAA8B,CAAC,EAAE,UAAU,GAAG,SAAS,QAAQ;AACrF,QAAA,CAAC,MAAM,IAAIC,MAAA,SAAS,MAAMC,eAAAA,cAAc,UAAU,GAAG,CAAC;AAC5D,MAAI,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AAC/B,UAAA,IAAI,MAAM,kDAAkD;AAAA,EACnE;AACA,wCACEC,cAAU,UAAA,EAAA,GAAG,OAAO,oBAAoB,GACxC,yCAACC,SAA2B,2BAAA,UAA3B,EAAoC,OAAO,EAAE,iBAAiB,MAAM,qBAAqB,UACxF,UACF,EACD,CAAA;AAEF,GAAG,CAAS,UAAA;AAEV,SAAAC,2BAAA,KAACF,cAAU,UAAA,EAAA,GAAG,OACZ,UAAA;AAAA,IAAM,MAAA;AAAA,IACNG,2BAAAA,IAAAC,aAAAA,OAAA,EAAM,OAAO,MAAM,oBAAqB,CAAA;AAAA,EAC1C,EAAA,CAAA;AAEF,CAAC;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeater.js","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeater.tsx"],"sourcesContent":["import { Component, Field, SugaredRelativeSingleField } from '@contember/react-binding'\nimport { Repeater, RepeaterProps } from '@contember/react-repeater'\nimport { useState } from 'react'\nimport { extractBlocks } from '../internal/helpers/staticAnalyzer'\nimport { BlockRepeaterConfigContext } from '../contexts'\n\nexport type BlockRepeaterProps =\n\t& {\n\t\tsortableBy: RepeaterProps['sortableBy']\n\t\tdiscriminationField: SugaredRelativeSingleField['field']\n\t}\n\t& RepeaterProps\n\nexport const BlockRepeater = Component<BlockRepeaterProps>(({ children, ...props }, env) => {\n\tconst [blocks] = useState(() => extractBlocks(children, env))\n\tif (Object.keys(blocks).length === 0) {\n\t\tthrow new Error('BlockRepeater must have at least one Block child')\n\t}\n\treturn (\n\t\t<Repeater {...props} initialEntityCount={0}>\n\t\t\t<BlockRepeaterConfigContext.Provider value={{ discriminatedBy: props.discriminationField, blocks }}>\n\t\t\t\t{children}\n\t\t\t</BlockRepeaterConfigContext.Provider>\n\t\t</Repeater>\n\t)\n}, props => {\n\treturn (\n\t\t<Repeater {...props}>\n\t\t\t{props.children}\n\t\t\t<Field field={props.discriminationField} />\n\t\t</Repeater>\n\t)\n})\n"],"names":[],"mappings":";;;;;;AAaa,MAAA,gBAAgB,UAA8B,CAAC,EAAE,UAAU,GAAG,SAAS,QAAQ;AACrF,QAAA,CAAC,MAAM,IAAI,SAAS,MAAM,cAAc,UAAU,GAAG,CAAC;AAC5D,MAAI,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AAC/B,UAAA,IAAI,MAAM,kDAAkD;AAAA,EACnE;AACA,6BACE,UAAU,EAAA,GAAG,OAAO,oBAAoB,GACxC,8BAAC,2BAA2B,UAA3B,EAAoC,OAAO,EAAE,iBAAiB,MAAM,qBAAqB,UACxF,UACF,EACD,CAAA;AAEF,GAAG,CAAS,UAAA;AAEV,SAAA,qBAAC,UAAU,EAAA,GAAG,OACZ,UAAA;AAAA,IAAM,MAAA;AAAA,IACN,oBAAA,OAAA,EAAM,OAAO,MAAM,oBAAqB,CAAA;AAAA,EAC1C,EAAA,CAAA;AAEF,CAAC;"}
@@ -3,12 +3,12 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const reactSlot = require("@radix-ui/react-slot");
5
5
  const contexts = require("../contexts.cjs");
6
- const react = require("react");
6
+ const React = require("react");
7
7
  const reactRepeater = require("@contember/react-repeater");
8
8
  const BlockRepeaterAddItemTrigger = ({ preprocess, index, type, ...props }) => {
9
9
  const { discriminatedBy } = contexts.useBlockRepeaterConfig();
10
10
  const { addItem } = reactRepeater.useRepeaterMethods();
11
- const onClick = react.useMemo(() => () => addItem?.(index, (it) => {
11
+ const onClick = React.useMemo(() => () => addItem?.(index, (it) => {
12
12
  it().getField(discriminatedBy).updateValue(type);
13
13
  }), [addItem, discriminatedBy, index, type]);
14
14
  return /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slot, { onClick, ...props });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeaterAddItemTrigger.cjs","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeaterAddItemTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { useBlockRepeaterConfig } from '../contexts'\nimport React, { ReactElement, useMemo } from 'react'\nimport { EntityAccessor } from '@contember/react-binding'\nimport { RepeaterAddItemIndex, useRepeaterMethods } from '@contember/react-repeater'\n\nexport interface BlockRepeaterAddItemTriggerProps {\n\tchildren: ReactElement\n\ttype: string\n\tindex?: RepeaterAddItemIndex\n\tpreprocess?: EntityAccessor.BatchUpdatesHandler\n}\n\nexport const BlockRepeaterAddItemTrigger = ({ preprocess, index, type, ...props }: BlockRepeaterAddItemTriggerProps) => {\n\tconst { discriminatedBy } = useBlockRepeaterConfig()\n\n\tconst { addItem } = useRepeaterMethods()\n\tconst onClick = useMemo(() => () => addItem?.(index, it => {\n\t\tit().getField(discriminatedBy).updateValue(type)\n\t}), [addItem, discriminatedBy, index, type])\n\n\treturn <Slot onClick={onClick} {...props} />\n}\n"],"names":["useBlockRepeaterConfig","useRepeaterMethods","useMemo","jsx","Slot"],"mappings":";;;;;;;AAaa,MAAA,8BAA8B,CAAC,EAAE,YAAY,OAAO,MAAM,GAAG,YAA8C;AACjH,QAAA,EAAE,oBAAoBA,SAAAA;AAEtB,QAAA,EAAE,YAAYC,cAAAA;AACpB,QAAM,UAAUC,MAAAA,QAAQ,MAAM,MAAM,UAAU,OAAO,CAAM,OAAA;AAC1D,OAAA,EAAK,SAAS,eAAe,EAAE,YAAY,IAAI;AAAA,EAAA,CAC/C,GAAG,CAAC,SAAS,iBAAiB,OAAO,IAAI,CAAC;AAE3C,SAAQC,2BAAAA,IAAAC,UAAAA,MAAA,EAAK,SAAmB,GAAG,MAAO,CAAA;AAC3C;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockRepeaterAddItemTrigger.js","sources":["../../../../../packages/react-block-repeater/src/components/BlockRepeaterAddItemTrigger.tsx"],"sourcesContent":["import { Slot } from '@radix-ui/react-slot'\nimport { useBlockRepeaterConfig } from '../contexts'\nimport React, { ReactElement, useMemo } from 'react'\nimport { EntityAccessor } from '@contember/react-binding'\nimport { RepeaterAddItemIndex, useRepeaterMethods } from '@contember/react-repeater'\n\nexport interface BlockRepeaterAddItemTriggerProps {\n\tchildren: ReactElement\n\ttype: string\n\tindex?: RepeaterAddItemIndex\n\tpreprocess?: EntityAccessor.BatchUpdatesHandler\n}\n\nexport const BlockRepeaterAddItemTrigger = ({ preprocess, index, type, ...props }: BlockRepeaterAddItemTriggerProps) => {\n\tconst { discriminatedBy } = useBlockRepeaterConfig()\n\n\tconst { addItem } = useRepeaterMethods()\n\tconst onClick = useMemo(() => () => addItem?.(index, it => {\n\t\tit().getField(discriminatedBy).updateValue(type)\n\t}), [addItem, discriminatedBy, index, type])\n\n\treturn <Slot onClick={onClick} {...props} />\n}\n"],"names":[],"mappings":";;;;;AAaa,MAAA,8BAA8B,CAAC,EAAE,YAAY,OAAO,MAAM,GAAG,YAA8C;AACjH,QAAA,EAAE,oBAAoB;AAEtB,QAAA,EAAE,YAAY;AACpB,QAAM,UAAU,QAAQ,MAAM,MAAM,UAAU,OAAO,CAAM,OAAA;AAC1D,OAAA,EAAK,SAAS,eAAe,EAAE,YAAY,IAAI;AAAA,EAAA,CAC/C,GAAG,CAAC,SAAS,iBAAiB,OAAO,IAAI,CAAC;AAE3C,SAAQ,oBAAA,MAAA,EAAK,SAAmB,GAAG,MAAO,CAAA;AAC3C;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.cjs","sources":["../../../../packages/react-block-repeater/src/contexts.ts"],"sourcesContent":["import { SugaredRelativeSingleField } from '@contember/react-binding'\nimport { createRequiredContext } from '@contember/react-utils'\nimport { BlocksMap } from './types'\n\nconst BlockRepeaterConfigContext_ = createRequiredContext<{\n\tdiscriminatedBy: SugaredRelativeSingleField['field']\n\tblocks: BlocksMap\n}>('BlockRepeaterConfigContext')\n/** @internal */\nexport const BlockRepeaterConfigContext = BlockRepeaterConfigContext_[0]\nexport const useBlockRepeaterConfig = BlockRepeaterConfigContext_[1]\n"],"names":["createRequiredContext"],"mappings":";;;AAIA,MAAM,8BAA8BA,WAAAA,sBAGjC,4BAA4B;AAElB,MAAA,6BAA6B,4BAA4B,CAAC;AAC1D,MAAA,yBAAyB,4BAA4B,CAAC;;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contexts.js","sources":["../../../../packages/react-block-repeater/src/contexts.ts"],"sourcesContent":["import { SugaredRelativeSingleField } from '@contember/react-binding'\nimport { createRequiredContext } from '@contember/react-utils'\nimport { BlocksMap } from './types'\n\nconst BlockRepeaterConfigContext_ = createRequiredContext<{\n\tdiscriminatedBy: SugaredRelativeSingleField['field']\n\tblocks: BlocksMap\n}>('BlockRepeaterConfigContext')\n/** @internal */\nexport const BlockRepeaterConfigContext = BlockRepeaterConfigContext_[0]\nexport const useBlockRepeaterConfig = BlockRepeaterConfigContext_[1]\n"],"names":[],"mappings":";AAIA,MAAM,8BAA8B,sBAGjC,4BAA4B;AAElB,MAAA,6BAA6B,4BAA4B,CAAC;AAC1D,MAAA,yBAAyB,4BAA4B,CAAC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockRepeaterCurrentBlock.cjs","sources":["../../../../../packages/react-block-repeater/src/hooks/useBlockRepeaterCurrentBlock.ts"],"sourcesContent":["import { useEntity } from '@contember/react-binding'\nimport { useBlockRepeaterConfig } from '../contexts'\n\nexport const useBlockRepeaterCurrentBlock = () => {\n\tconst entity = useEntity()\n\tconst { discriminatedBy, blocks } = useBlockRepeaterConfig()\n\tconst field = entity.getField<string>(discriminatedBy).value\n\treturn field ? blocks[field] : undefined\n}\n"],"names":["useEntity","useBlockRepeaterConfig"],"mappings":";;;;AAGO,MAAM,+BAA+B,MAAM;AACjD,QAAM,SAASA,aAAAA;AACf,QAAM,EAAE,iBAAiB,OAAO,IAAIC,SAAuB,uBAAA;AAC3D,QAAM,QAAQ,OAAO,SAAiB,eAAe,EAAE;AAChD,SAAA,QAAQ,OAAO,KAAK,IAAI;AAChC;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockRepeaterCurrentBlock.js","sources":["../../../../../packages/react-block-repeater/src/hooks/useBlockRepeaterCurrentBlock.ts"],"sourcesContent":["import { useEntity } from '@contember/react-binding'\nimport { useBlockRepeaterConfig } from '../contexts'\n\nexport const useBlockRepeaterCurrentBlock = () => {\n\tconst entity = useEntity()\n\tconst { discriminatedBy, blocks } = useBlockRepeaterConfig()\n\tconst field = entity.getField<string>(discriminatedBy).value\n\treturn field ? blocks[field] : undefined\n}\n"],"names":[],"mappings":";;AAGO,MAAM,+BAA+B,MAAM;AACjD,QAAM,SAAS;AACf,QAAM,EAAE,iBAAiB,OAAO,IAAI,uBAAuB;AAC3D,QAAM,QAAQ,OAAO,SAAiB,eAAe,EAAE;AAChD,SAAA,QAAQ,OAAO,KAAK,IAAI;AAChC;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticAnalyzer.cjs","sources":["../../../../../../packages/react-block-repeater/src/internal/helpers/staticAnalyzer.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Block, BlockProps } from '../../components'\nimport { Environment } from '@contember/react-binding'\nimport { ChildrenAnalyzer, Leaf } from '@contember/react-multipass-rendering'\n\ntype BlocksMap = Record<string, BlockProps>\nexport const extractBlocks = (children: ReactNode, env: Environment): BlocksMap => {\n\tconst blocks = blockAnalyzer.processChildren(children, env)\n\treturn Object.fromEntries(blocks.map(block => [block.name, block]))\n}\n\nconst columnLeaf = new Leaf(node => node.props, Block)\n\nconst blockAnalyzer = new ChildrenAnalyzer<\n\tBlockProps,\n\tnever,\n\tEnvironment\n>([columnLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n\tstaticContextFactoryName: 'generateEnvironment',\n\tunhandledNodeErrorMessage: 'Only Block children are supported.',\n})\n"],"names":["Leaf","Block","ChildrenAnalyzer"],"mappings":";;;;AAMa,MAAA,gBAAgB,CAAC,UAAqB,QAAgC;AAClF,QAAM,SAAS,cAAc,gBAAgB,UAAU,GAAG;AACnD,SAAA,OAAO,YAAY,OAAO,IAAI,CAAA,UAAS,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC;AACnE;AAEA,MAAM,aAAa,IAAIA,wBAAAA,KAAK,CAAQ,SAAA,KAAK,OAAOC,MAAAA,KAAK;AAErD,MAAM,gBAAgB,IAAIC,wBAAAA,iBAIxB,CAAC,UAAU,GAAG;AAAA,EACf,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,2BAA2B;AAC5B,CAAC;;"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticAnalyzer.js","sources":["../../../../../../packages/react-block-repeater/src/internal/helpers/staticAnalyzer.ts"],"sourcesContent":["import { ReactNode } from 'react'\nimport { Block, BlockProps } from '../../components'\nimport { Environment } from '@contember/react-binding'\nimport { ChildrenAnalyzer, Leaf } from '@contember/react-multipass-rendering'\n\ntype BlocksMap = Record<string, BlockProps>\nexport const extractBlocks = (children: ReactNode, env: Environment): BlocksMap => {\n\tconst blocks = blockAnalyzer.processChildren(children, env)\n\treturn Object.fromEntries(blocks.map(block => [block.name, block]))\n}\n\nconst columnLeaf = new Leaf(node => node.props, Block)\n\nconst blockAnalyzer = new ChildrenAnalyzer<\n\tBlockProps,\n\tnever,\n\tEnvironment\n>([columnLeaf], {\n\tstaticRenderFactoryName: 'staticRender',\n\tstaticContextFactoryName: 'generateEnvironment',\n\tunhandledNodeErrorMessage: 'Only Block children are supported.',\n})\n"],"names":[],"mappings":";;AAMa,MAAA,gBAAgB,CAAC,UAAqB,QAAgC;AAClF,QAAM,SAAS,cAAc,gBAAgB,UAAU,GAAG;AACnD,SAAA,OAAO,YAAY,OAAO,IAAI,CAAA,UAAS,CAAC,MAAM,MAAM,KAAK,CAAC,CAAC;AACnE;AAEA,MAAM,aAAa,IAAI,KAAK,CAAQ,SAAA,KAAK,OAAO,KAAK;AAErD,MAAM,gBAAgB,IAAI,iBAIxB,CAAC,UAAU,GAAG;AAAA,EACf,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,2BAA2B;AAC5B,CAAC;"}
@@ -2,11 +2,11 @@ import { SugaredRelativeSingleField } from '@contember/react-binding';
2
2
  import { BlocksMap } from './types';
3
3
  /** @internal */
4
4
  export declare const BlockRepeaterConfigContext: import("react").Context<{
5
- discriminatedBy: SugaredRelativeSingleField['field'];
5
+ discriminatedBy: SugaredRelativeSingleField["field"];
6
6
  blocks: BlocksMap;
7
7
  }>;
8
8
  export declare const useBlockRepeaterConfig: () => {
9
- discriminatedBy: SugaredRelativeSingleField['field'];
9
+ discriminatedBy: SugaredRelativeSingleField["field"];
10
10
  blocks: BlocksMap;
11
11
  };
12
12
  //# sourceMappingURL=contexts.d.ts.map