@webiny/app-admin 6.1.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/base/Admin.js +2 -0
  2. package/base/Admin.js.map +1 -1
  3. package/base/Base/DefaultFieldRenderers.d.ts +2 -0
  4. package/base/Base/DefaultFieldRenderers.js +15 -0
  5. package/base/Base/DefaultFieldRenderers.js.map +1 -0
  6. package/base/Base/FieldRenderers/SelectRenderer.d.ts +5 -0
  7. package/base/Base/FieldRenderers/SelectRenderer.js +24 -0
  8. package/base/Base/FieldRenderers/SelectRenderer.js.map +1 -0
  9. package/base/Base/FieldRenderers/TextRenderer.d.ts +5 -0
  10. package/base/Base/FieldRenderers/TextRenderer.js +21 -0
  11. package/base/Base/FieldRenderers/TextRenderer.js.map +1 -0
  12. package/base/Base/Menus.js +7 -0
  13. package/base/Base/Menus.js.map +1 -1
  14. package/base/Base.js +2 -1
  15. package/base/Base.js.map +1 -1
  16. package/base/createRootContainer.js +2 -0
  17. package/base/createRootContainer.js.map +1 -1
  18. package/components/Dialogs/DialogParamsContext.d.ts +6 -0
  19. package/components/Dialogs/DialogParamsContext.js +11 -0
  20. package/components/Dialogs/DialogParamsContext.js.map +1 -0
  21. package/components/Dialogs/DialogsContext.d.ts +2 -0
  22. package/components/Dialogs/DialogsContext.js +32 -4
  23. package/components/Dialogs/DialogsContext.js.map +1 -1
  24. package/components/OptionsMenu/OptionsMenu.d.ts +6 -0
  25. package/components/OptionsMenu/OptionsMenu.js +3 -3
  26. package/components/OptionsMenu/OptionsMenu.js.map +1 -1
  27. package/components/RegisterFeature.js +5 -5
  28. package/components/RegisterFeature.js.map +1 -1
  29. package/components/Wcp.d.ts +2 -0
  30. package/components/Wcp.js +7 -0
  31. package/components/Wcp.js.map +1 -1
  32. package/config/AdminConfig/Dialog.d.ts +10 -0
  33. package/config/AdminConfig/Dialog.js +21 -0
  34. package/config/AdminConfig/Dialog.js.map +1 -0
  35. package/config/AdminConfig/FieldRenderer.d.ts +11 -0
  36. package/config/AdminConfig/FieldRenderer.js +21 -0
  37. package/config/AdminConfig/FieldRenderer.js.map +1 -0
  38. package/config/AdminConfig/Form.d.ts +3 -0
  39. package/config/AdminConfig/Form.js +6 -0
  40. package/config/AdminConfig/Form.js.map +1 -0
  41. package/config/AdminConfig.d.ts +10 -0
  42. package/config/AdminConfig.js +7 -1
  43. package/config/AdminConfig.js.map +1 -1
  44. package/exports/admin/security.d.ts +6 -0
  45. package/exports/admin/security.js +5 -0
  46. package/exports/admin/security.js.map +1 -1
  47. package/exports/admin/ui.d.ts +2 -0
  48. package/exports/admin/ui.js +2 -0
  49. package/exports/admin/ui.js.map +1 -1
  50. package/exports/admin.d.ts +0 -3
  51. package/exports/admin.js +0 -3
  52. package/exports/admin.js.map +1 -1
  53. package/features/formModel/Field.d.ts +52 -0
  54. package/features/formModel/Field.js +201 -0
  55. package/features/formModel/Field.js.map +1 -0
  56. package/features/formModel/FieldBuilder.d.ts +45 -0
  57. package/features/formModel/FieldBuilder.js +158 -0
  58. package/features/formModel/FieldBuilder.js.map +1 -0
  59. package/features/formModel/FieldBuilder.test.js +106 -0
  60. package/features/formModel/FieldBuilder.test.js.map +1 -0
  61. package/features/formModel/FormModel.d.ts +61 -0
  62. package/features/formModel/FormModel.js +573 -0
  63. package/features/formModel/FormModel.js.map +1 -0
  64. package/features/formModel/FormModel.test.d.ts +1 -0
  65. package/features/formModel/FormModel.test.js +1140 -0
  66. package/features/formModel/FormModel.test.js.map +1 -0
  67. package/features/formModel/FormModelFactory.d.ts +9 -0
  68. package/features/formModel/FormModelFactory.js +13 -0
  69. package/features/formModel/FormModelFactory.js.map +1 -0
  70. package/features/formModel/FormView.d.ts +23 -0
  71. package/features/formModel/FormView.js +138 -0
  72. package/features/formModel/FormView.js.map +1 -0
  73. package/features/formModel/abstractions.d.ts +286 -0
  74. package/features/formModel/abstractions.js +54 -0
  75. package/features/formModel/abstractions.js.map +1 -0
  76. package/features/formModel/feature.d.ts +3 -0
  77. package/features/formModel/feature.js +16 -0
  78. package/features/formModel/feature.js.map +1 -0
  79. package/features/formModel/index.d.ts +10 -0
  80. package/features/formModel/index.js +14 -0
  81. package/features/formModel/index.js.map +1 -0
  82. package/features/formModel/useFieldRenderers.d.ts +2 -0
  83. package/features/formModel/useFieldRenderers.js +19 -0
  84. package/features/formModel/useFieldRenderers.js.map +1 -0
  85. package/features/security/LogIn/LogInGateway.d.ts +2 -2
  86. package/features/security/LogIn/LogInGateway.js +2 -2
  87. package/features/security/LogIn/LogInGateway.js.map +1 -1
  88. package/features/wcp/WcpGateway.d.ts +2 -2
  89. package/features/wcp/WcpGateway.js +2 -2
  90. package/features/wcp/WcpGateway.js.map +1 -1
  91. package/hooks/index.d.ts +1 -0
  92. package/hooks/index.js +1 -0
  93. package/hooks/index.js.map +1 -1
  94. package/hooks/useDialog.d.ts +9 -29
  95. package/hooks/useDialog.js +16 -24
  96. package/hooks/useDialog.js.map +1 -1
  97. package/hooks/useOpenDialog.d.ts +7 -0
  98. package/hooks/useOpenDialog.js +18 -0
  99. package/hooks/useOpenDialog.js.map +1 -0
  100. package/index.d.ts +5 -0
  101. package/index.js +5 -0
  102. package/index.js.map +1 -1
  103. package/package.json +30 -30
  104. package/permissions/createHasPermission.d.ts +3 -2
  105. package/permissions/createHasPermission.js +4 -8
  106. package/permissions/createHasPermission.js.map +1 -1
  107. package/permissions/createPermissions.d.ts +6 -0
  108. package/permissions/createPermissions.js +201 -0
  109. package/permissions/createPermissions.js.map +1 -0
  110. package/permissions/createPermissions.test.d.ts +1 -0
  111. package/permissions/createPermissions.test.js +177 -0
  112. package/permissions/createPermissions.test.js.map +1 -0
  113. package/permissions/index.d.ts +1 -0
  114. package/permissions/index.js +1 -0
  115. package/permissions/index.js.map +1 -1
  116. package/permissions/types.d.ts +5 -0
  117. package/permissions/types.js.map +1 -1
  118. package/permissions/usePermissions.d.ts +2 -1
  119. package/permissions/usePermissions.js +4 -175
  120. package/permissions/usePermissions.js.map +1 -1
  121. package/presentation/installation/presenters/SystemInstaller/SystemInstallerGateway.d.ts +2 -2
  122. package/presentation/installation/presenters/SystemInstaller/SystemInstallerGateway.js +2 -2
  123. package/presentation/installation/presenters/SystemInstaller/SystemInstallerGateway.js.map +1 -1
  124. package/permissions/createHasPermission.test.js +0 -206
  125. package/permissions/createHasPermission.test.js.map +0 -1
  126. /package/{permissions/createHasPermission.test.d.ts → features/formModel/FieldBuilder.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["React","useWcp","CanUseTeams","children","wcp","canUseTeams","createElement","Fragment","CanUsePrivateFiles","canUsePrivateFiles","CanUseFileManagerThreatDetection","canUseFileManagerThreatDetection","CanUseWorkflows","canUseWorkflows","CanUseHcmsFieldPermissions","canUseHcmsFieldPermissions","Wcp"],"sources":["Wcp.tsx"],"sourcesContent":["import React from \"react\";\nimport { useWcp } from \"~/presentation/wcp/useWcp.js\";\n\ninterface ChildrenProps {\n children: React.ReactNode;\n}\n\nfunction CanUseTeams({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseTeams() ? <>{children}</> : null;\n}\n\nfunction CanUsePrivateFiles({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUsePrivateFiles() ? <>{children}</> : null;\n}\n\nfunction CanUseFileManagerThreatDetection({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseFileManagerThreatDetection() ? <>{children}</> : null;\n}\n\nfunction CanUseWorkflows({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseWorkflows() ? <>{children}</> : null;\n}\n\nfunction CanUseHcmsFieldPermissions({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseHcmsFieldPermissions() ? <>{children}</> : null;\n}\n\nexport const Wcp = {\n CanUseTeams,\n CanUsePrivateFiles,\n CanUseFileManagerThreatDetection,\n CanUseWorkflows,\n CanUseHcmsFieldPermissions\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM;AAMf,SAASC,WAAWA,CAAC;EAAEC;AAAwB,CAAC,EAAE;EAC9C,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACC,WAAW,CAAC,CAAC,gBAAGL,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACrD;AAEA,SAASK,kBAAkBA,CAAC;EAAEL;AAAwB,CAAC,EAAE;EACrD,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACK,kBAAkB,CAAC,CAAC,gBAAGT,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC5D;AAEA,SAASO,gCAAgCA,CAAC;EAAEP;AAAwB,CAAC,EAAE;EACnE,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACO,gCAAgC,CAAC,CAAC,gBAAGX,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC1E;AAEA,SAASS,eAAeA,CAAC;EAAET;AAAwB,CAAC,EAAE;EAClD,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACS,eAAe,CAAC,CAAC,gBAAGb,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACzD;AAEA,SAASW,0BAA0BA,CAAC;EAAEX;AAAwB,CAAC,EAAE;EAC7D,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACW,0BAA0B,CAAC,CAAC,gBAAGf,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACpE;AAEA,OAAO,MAAMa,GAAG,GAAG;EACfd,WAAW;EACXM,kBAAkB;EAClBE,gCAAgC;EAChCE,eAAe;EACfE;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useWcp","CanUseMultiTenancy","children","wcp","canUseFeature","createElement","Fragment","CanUseTeams","canUseTeams","CanUsePrivateFiles","canUsePrivateFiles","CanUseFileManagerThreatDetection","canUseFileManagerThreatDetection","CanUseWorkflows","canUseWorkflows","CanUseHcmsFieldPermissions","canUseHcmsFieldPermissions","Wcp"],"sources":["Wcp.tsx"],"sourcesContent":["import React from \"react\";\nimport { useWcp } from \"~/presentation/wcp/useWcp.js\";\n\ninterface ChildrenProps {\n children: React.ReactNode;\n}\n\nfunction CanUseMultiTenancy({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseFeature(\"multiTenancy\") ? <>{children}</> : null;\n}\n\nfunction CanUseTeams({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseTeams() ? <>{children}</> : null;\n}\n\nfunction CanUsePrivateFiles({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUsePrivateFiles() ? <>{children}</> : null;\n}\n\nfunction CanUseFileManagerThreatDetection({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseFileManagerThreatDetection() ? <>{children}</> : null;\n}\n\nfunction CanUseWorkflows({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseWorkflows() ? <>{children}</> : null;\n}\n\nfunction CanUseHcmsFieldPermissions({ children }: ChildrenProps) {\n const wcp = useWcp();\n return wcp.canUseHcmsFieldPermissions() ? <>{children}</> : null;\n}\n\nexport const Wcp = {\n CanUseMultiTenancy,\n CanUseTeams,\n CanUsePrivateFiles,\n CanUseFileManagerThreatDetection,\n CanUseWorkflows,\n CanUseHcmsFieldPermissions\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM;AAMf,SAASC,kBAAkBA,CAAC;EAAEC;AAAwB,CAAC,EAAE;EACrD,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACC,aAAa,CAAC,cAAc,CAAC,gBAAGL,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACrE;AAEA,SAASK,WAAWA,CAAC;EAAEL;AAAwB,CAAC,EAAE;EAC9C,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACK,WAAW,CAAC,CAAC,gBAAGT,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACrD;AAEA,SAASO,kBAAkBA,CAAC;EAAEP;AAAwB,CAAC,EAAE;EACrD,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACO,kBAAkB,CAAC,CAAC,gBAAGX,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC5D;AAEA,SAASS,gCAAgCA,CAAC;EAAET;AAAwB,CAAC,EAAE;EACnE,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACS,gCAAgC,CAAC,CAAC,gBAAGb,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AAC1E;AAEA,SAASW,eAAeA,CAAC;EAAEX;AAAwB,CAAC,EAAE;EAClD,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACW,eAAe,CAAC,CAAC,gBAAGf,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACzD;AAEA,SAASa,0BAA0BA,CAAC;EAAEb;AAAwB,CAAC,EAAE;EAC7D,MAAMC,GAAG,GAAGH,MAAM,CAAC,CAAC;EACpB,OAAOG,GAAG,CAACa,0BAA0B,CAAC,CAAC,gBAAGjB,KAAA,CAAAM,aAAA,CAAAN,KAAA,CAAAO,QAAA,QAAGJ,QAAW,CAAC,GAAG,IAAI;AACpE;AAEA,OAAO,MAAMe,GAAG,GAAG;EACfhB,kBAAkB;EAClBM,WAAW;EACXE,kBAAkB;EAClBE,gCAAgC;EAChCE,eAAe;EACfE;AACJ,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export interface DialogConfig {
3
+ name: string;
4
+ element: React.ReactElement;
5
+ }
6
+ export interface DialogProps {
7
+ name: string;
8
+ element: React.ReactElement;
9
+ }
10
+ export declare const Dialog: ({ name, element }: DialogProps) => React.JSX.Element;
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import { ConnectToProperties, Property, useIdGenerator } from "@webiny/react-properties";
3
+ export const Dialog = ({
4
+ name,
5
+ element
6
+ }) => {
7
+ const getId = useIdGenerator("Dialog");
8
+ return /*#__PURE__*/React.createElement(ConnectToProperties, {
9
+ name: "AdminConfig"
10
+ }, /*#__PURE__*/React.createElement(Property, {
11
+ id: getId(name),
12
+ name: "dialogs",
13
+ array: true,
14
+ value: {
15
+ name,
16
+ element
17
+ }
18
+ }));
19
+ };
20
+
21
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ConnectToProperties","Property","useIdGenerator","Dialog","name","element","getId","createElement","id","array","value"],"sources":["Dialog.tsx"],"sourcesContent":["import React from \"react\";\nimport { ConnectToProperties, Property, useIdGenerator } from \"@webiny/react-properties\";\n\nexport interface DialogConfig {\n name: string;\n element: React.ReactElement;\n}\n\nexport interface DialogProps {\n name: string;\n element: React.ReactElement;\n}\n\nexport const Dialog = ({ name, element }: DialogProps) => {\n const getId = useIdGenerator(\"Dialog\");\n\n return (\n <ConnectToProperties name={\"AdminConfig\"}>\n <Property id={getId(name)} name={\"dialogs\"} array={true} value={{ name, element }} />\n </ConnectToProperties>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAYxF,OAAO,MAAMC,MAAM,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAAqB,CAAC,KAAK;EACtD,MAAMC,KAAK,GAAGJ,cAAc,CAAC,QAAQ,CAAC;EAEtC,oBACIH,KAAA,CAAAQ,aAAA,CAACP,mBAAmB;IAACI,IAAI,EAAE;EAAc,gBACrCL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IAACO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAACA,IAAI,EAAE,SAAU;IAACK,KAAK,EAAE,IAAK;IAACC,KAAK,EAAE;MAAEN,IAAI;MAAEC;IAAQ;EAAE,CAAE,CACnE,CAAC;AAE9B,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { FieldRendererComponent } from "../../features/formModel/FormView.js";
3
+ export interface FieldRendererConfig {
4
+ name: string;
5
+ component: FieldRendererComponent;
6
+ }
7
+ export interface FieldRendererProps {
8
+ name: string;
9
+ component: FieldRendererComponent;
10
+ }
11
+ export declare const FieldRenderer: ({ name, component }: FieldRendererProps) => React.JSX.Element;
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import { ConnectToProperties, Property, useIdGenerator } from "@webiny/react-properties";
3
+ export const FieldRenderer = ({
4
+ name,
5
+ component
6
+ }) => {
7
+ const getId = useIdGenerator("FormFieldRenderer");
8
+ return /*#__PURE__*/React.createElement(ConnectToProperties, {
9
+ name: "AdminConfig"
10
+ }, /*#__PURE__*/React.createElement(Property, {
11
+ id: getId(name),
12
+ name: "fieldRenderers",
13
+ array: true,
14
+ value: {
15
+ name,
16
+ component
17
+ }
18
+ }));
19
+ };
20
+
21
+ //# sourceMappingURL=FieldRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","ConnectToProperties","Property","useIdGenerator","FieldRenderer","name","component","getId","createElement","id","array","value"],"sources":["FieldRenderer.tsx"],"sourcesContent":["import React from \"react\";\nimport { ConnectToProperties, Property, useIdGenerator } from \"@webiny/react-properties\";\nimport type { FieldRendererComponent } from \"../../features/formModel/FormView.js\";\n\nexport interface FieldRendererConfig {\n name: string;\n component: FieldRendererComponent;\n}\n\nexport interface FieldRendererProps {\n name: string;\n component: FieldRendererComponent;\n}\n\nexport const FieldRenderer = ({ name, component }: FieldRendererProps) => {\n const getId = useIdGenerator(\"FormFieldRenderer\");\n\n return (\n <ConnectToProperties name={\"AdminConfig\"}>\n <Property\n id={getId(name)}\n name={\"fieldRenderers\"}\n array={true}\n value={{ name, component }}\n />\n </ConnectToProperties>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,mBAAmB,EAAEC,QAAQ,EAAEC,cAAc,QAAQ,0BAA0B;AAaxF,OAAO,MAAMC,aAAa,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAA8B,CAAC,KAAK;EACtE,MAAMC,KAAK,GAAGJ,cAAc,CAAC,mBAAmB,CAAC;EAEjD,oBACIH,KAAA,CAAAQ,aAAA,CAACP,mBAAmB;IAACI,IAAI,EAAE;EAAc,gBACrCL,KAAA,CAAAQ,aAAA,CAACN,QAAQ;IACLO,EAAE,EAAEF,KAAK,CAACF,IAAI,CAAE;IAChBA,IAAI,EAAE,gBAAiB;IACvBK,KAAK,EAAE,IAAK;IACZC,KAAK,EAAE;MAAEN,IAAI;MAAEC;IAAU;EAAE,CAC9B,CACgB,CAAC;AAE9B,CAAC","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ export declare const Form: {
2
+ FieldRenderer: ({ name, component }: import("./FieldRenderer.js").FieldRendererProps) => import("react").JSX.Element;
3
+ };
@@ -0,0 +1,6 @@
1
+ import { FieldRenderer } from "./FieldRenderer.js";
2
+ export const Form = {
3
+ FieldRenderer
4
+ };
5
+
6
+ //# sourceMappingURL=Form.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldRenderer","Form"],"sources":["Form.ts"],"sourcesContent":["import { FieldRenderer } from \"./FieldRenderer.js\";\n\nexport const Form = {\n FieldRenderer\n};\n"],"mappings":"AAAA,SAASA,aAAa;AAEtB,OAAO,MAAMC,IAAI,GAAG;EAChBD;AACJ,CAAC","ignoreList":[]}
@@ -4,6 +4,8 @@ import type { SupportMenuConfig } from "./AdminConfig/Menu/SupportMenu.js";
4
4
  import type { UserMenuConfig } from "./AdminConfig/Menu/UserMenu.js";
5
5
  import { type WidgetConfig } from "./AdminConfig/Widget.js";
6
6
  import type { PermissionRendererConfig } from "../permissions/types.js";
7
+ import type { DialogConfig } from "./AdminConfig/Dialog.js";
8
+ import type { FieldRendererConfig } from "./AdminConfig/FieldRenderer.js";
7
9
  import type { EditorTheme } from "@webiny/lexical-theme";
8
10
  export declare const AdminWithConfig: (({ onProperties, children }: import("./createAdminConfig.js").WithConfigProps) => React.JSX.Element) & {
9
11
  displayName: string;
@@ -22,6 +24,8 @@ export declare const useAdminConfig: () => {
22
24
  widgets: WidgetConfig[];
23
25
  permissionRenderers: PermissionRendererConfig[];
24
26
  lexicalTheme: EditorTheme;
27
+ dialogs: DialogConfig[];
28
+ fieldRenderers: FieldRendererConfig[];
25
29
  };
26
30
  export interface PublicProps {
27
31
  children: React.ReactNode;
@@ -470,6 +474,10 @@ export declare const AdminConfig: (({ children }: PrivateProps) => React.JSX.Ele
470
474
  List: (props: import("./AdminConfig/LexicalTheme/Typography.js").ListProps) => React.JSX.Element;
471
475
  };
472
476
  };
477
+ Dialog: ({ name, element }: import("./AdminConfig/Dialog.js").DialogProps) => React.JSX.Element;
478
+ Form: {
479
+ FieldRenderer: ({ name, component }: import("./AdminConfig/FieldRenderer.js").FieldRendererProps) => React.JSX.Element;
480
+ };
473
481
  useAdminConfig: () => {
474
482
  menus: MenuConfig[];
475
483
  userMenus: UserMenuConfig[];
@@ -482,5 +490,7 @@ export declare const AdminConfig: (({ children }: PrivateProps) => React.JSX.Ele
482
490
  widgets: WidgetConfig[];
483
491
  permissionRenderers: PermissionRendererConfig[];
484
492
  lexicalTheme: EditorTheme;
493
+ dialogs: DialogConfig[];
494
+ fieldRenderers: FieldRendererConfig[];
485
495
  };
486
496
  };
@@ -9,6 +9,8 @@ import { Security } from "./AdminConfig/Security.js";
9
9
  import { LexicalTheme } from "./AdminConfig/LexicalTheme.js";
10
10
  import { Title } from "./AdminConfig/Title.js";
11
11
  import { Logo } from "./AdminConfig/Logo.js";
12
+ import { Dialog } from "./AdminConfig/Dialog.js";
13
+ import { Form } from "./AdminConfig/Form.js";
12
14
  import { createAdminConfig } from "./createAdminConfig.js";
13
15
  import { createLexicalTokens } from "@webiny/lexical-theme/createLexicalEditorTokens.js";
14
16
  const base = createAdminConfig();
@@ -43,7 +45,9 @@ export const useAdminConfig = () => {
43
45
  },
44
46
  widgets: baseConfig.widgets ?? [],
45
47
  permissionRenderers: baseConfig.permissionRenderers ?? [],
46
- lexicalTheme
48
+ lexicalTheme,
49
+ dialogs: baseConfig.dialogs ?? [],
50
+ fieldRenderers: baseConfig.fieldRenderers ?? []
47
51
  };
48
52
  };
49
53
  export const Public = ({
@@ -67,6 +71,8 @@ export const AdminConfig = Object.assign(Private, {
67
71
  Dashboard,
68
72
  Security,
69
73
  LexicalTheme,
74
+ Dialog,
75
+ Form,
70
76
  useAdminConfig
71
77
  });
72
78
 
@@ -1 +1 @@
1
- {"version":3,"names":["React","createProvider","Menu","Tenant","Route","Theme","Dashboard","Security","LexicalTheme","Title","Logo","createAdminConfig","createLexicalTokens","base","AdminWithConfig","Object","assign","WithConfig","displayName","AdminConfigPlugin","createElement","ApplyProtectedConfig","AdminConfigProvider","Original","children","ApplyPublicConfig","lexicalTokens","useAdminConfig","baseConfig","useConfig","lexicalTheme","colors","typography","tokens","menus","userMenus","supportMenus","title","logo","squareLogo","horizontalLogo","widgets","permissionRenderers","Public","PublicConfig","Private","PrivateConfig","AdminConfig"],"sources":["AdminConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { createProvider } from \"@webiny/app\";\nimport { Menu, type MenuConfig } from \"./AdminConfig/Menu.js\";\nimport type { TenantConfig } from \"./AdminConfig/Tenant.js\";\nimport { Tenant } from \"./AdminConfig/Tenant.js\";\nimport type { SupportMenuConfig } from \"./AdminConfig/Menu/SupportMenu.js\";\nimport type { UserMenuConfig } from \"./AdminConfig/Menu/UserMenu.js\";\nimport { Route } from \"./AdminConfig/Route.js\";\nimport { Theme } from \"./AdminConfig/Theme.js\";\nimport { Dashboard } from \"./AdminConfig/Dashboard.js\";\nimport { type WidgetConfig } from \"./AdminConfig/Widget.js\";\nimport { Security } from \"./AdminConfig/Security.js\";\nimport type { PermissionRendererConfig } from \"../permissions/types.js\";\nimport { LexicalTheme } from \"./AdminConfig/LexicalTheme.js\";\nimport { Title } from \"./AdminConfig/Title.js\";\nimport { Logo } from \"./AdminConfig/Logo.js\";\nimport { createAdminConfig } from \"./createAdminConfig.js\";\nimport type { EditorTheme } from \"@webiny/lexical-theme\";\nimport { createLexicalTokens } from \"@webiny/lexical-theme/createLexicalEditorTokens.js\";\n\nconst base = createAdminConfig<AdminConfig>();\n\nexport const AdminWithConfig = Object.assign(base.WithConfig, {\n displayName: \"AdminWithConfig\"\n});\n\ninterface AdminConfig {\n menus: MenuConfig[];\n supportMenus: SupportMenuConfig[];\n userMenus: UserMenuConfig[];\n tenant: TenantConfig;\n title: string;\n squareLogo: React.ReactNode;\n horizontalLogo: React.ReactNode;\n widgets: WidgetConfig[];\n permissionRenderers: PermissionRendererConfig[];\n lexicalTheme: EditorTheme;\n}\n\n/* Once the app fully renders (after the LoginScreen), apply protected configs. */\nexport const AdminConfigPlugin = <base.ApplyProtectedConfig />;\n\nexport const AdminConfigProvider = createProvider(Original => {\n return function AdminConfigProvider({ children }) {\n return (\n <AdminWithConfig>\n <base.ApplyPublicConfig />\n <Original>{children}</Original>\n </AdminWithConfig>\n );\n };\n});\n\nconst lexicalTokens = createLexicalTokens(\"wa-lx-\");\n\nexport const useAdminConfig = () => {\n const baseConfig = base.useConfig();\n\n const lexicalTheme: EditorTheme = {\n colors: baseConfig.lexicalTheme?.colors,\n typography: baseConfig.lexicalTheme?.typography || {},\n tokens: lexicalTokens\n };\n\n return {\n menus: baseConfig.menus ?? [],\n userMenus: baseConfig.userMenus ?? [],\n supportMenus: baseConfig.supportMenus ?? [],\n title: baseConfig.title,\n logo: {\n squareLogo: baseConfig.squareLogo,\n horizontalLogo: baseConfig.horizontalLogo\n },\n widgets: baseConfig.widgets ?? [],\n permissionRenderers: baseConfig.permissionRenderers ?? [],\n lexicalTheme\n };\n};\n\nexport interface PublicProps {\n children: React.ReactNode;\n}\n\nexport const Public = ({ children }: PublicProps) => {\n return <base.PublicConfig>{children}</base.PublicConfig>;\n};\n\nexport interface PrivateProps {\n children: React.ReactNode;\n}\n\nexport const Private = ({ children }: PrivateProps) => {\n return <base.PrivateConfig>{children}</base.PrivateConfig>;\n};\n\nexport const AdminConfig = Object.assign(Private, {\n Public,\n Theme,\n Menu,\n Route,\n Tenant,\n Title,\n Logo,\n Dashboard,\n Security,\n LexicalTheme,\n useAdminConfig\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,cAAc,QAAQ,aAAa;AAC5C,SAASC,IAAI;AAEb,SAASC,MAAM;AAGf,SAASC,KAAK;AACd,SAASC,KAAK;AACd,SAASC,SAAS;AAElB,SAASC,QAAQ;AAEjB,SAASC,YAAY;AACrB,SAASC,KAAK;AACd,SAASC,IAAI;AACb,SAASC,iBAAiB;AAE1B,SAASC,mBAAmB,QAAQ,oDAAoD;AAExF,MAAMC,IAAI,GAAGF,iBAAiB,CAAc,CAAC;AAE7C,OAAO,MAAMG,eAAe,GAAGC,MAAM,CAACC,MAAM,CAACH,IAAI,CAACI,UAAU,EAAE;EAC1DC,WAAW,EAAE;AACjB,CAAC,CAAC;AAeF;AACA,OAAO,MAAMC,iBAAiB,gBAAGnB,KAAA,CAAAoB,aAAA,CAACP,IAAI,CAACQ,oBAAoB,MAAE,CAAC;AAE9D,OAAO,MAAMC,mBAAmB,GAAGrB,cAAc,CAACsB,QAAQ,IAAI;EAC1D,OAAO,SAASD,mBAAmBA,CAAC;IAAEE;EAAS,CAAC,EAAE;IAC9C,oBACIxB,KAAA,CAAAoB,aAAA,CAACN,eAAe,qBACZd,KAAA,CAAAoB,aAAA,CAACP,IAAI,CAACY,iBAAiB,MAAE,CAAC,eAC1BzB,KAAA,CAAAoB,aAAA,CAACG,QAAQ,QAAEC,QAAmB,CACjB,CAAC;EAE1B,CAAC;AACL,CAAC,CAAC;AAEF,MAAME,aAAa,GAAGd,mBAAmB,CAAC,QAAQ,CAAC;AAEnD,OAAO,MAAMe,cAAc,GAAGA,CAAA,KAAM;EAChC,MAAMC,UAAU,GAAGf,IAAI,CAACgB,SAAS,CAAC,CAAC;EAEnC,MAAMC,YAAyB,GAAG;IAC9BC,MAAM,EAAEH,UAAU,CAACE,YAAY,EAAEC,MAAM;IACvCC,UAAU,EAAEJ,UAAU,CAACE,YAAY,EAAEE,UAAU,IAAI,CAAC,CAAC;IACrDC,MAAM,EAAEP;EACZ,CAAC;EAED,OAAO;IACHQ,KAAK,EAAEN,UAAU,CAACM,KAAK,IAAI,EAAE;IAC7BC,SAAS,EAAEP,UAAU,CAACO,SAAS,IAAI,EAAE;IACrCC,YAAY,EAAER,UAAU,CAACQ,YAAY,IAAI,EAAE;IAC3CC,KAAK,EAAET,UAAU,CAACS,KAAK;IACvBC,IAAI,EAAE;MACFC,UAAU,EAAEX,UAAU,CAACW,UAAU;MACjCC,cAAc,EAAEZ,UAAU,CAACY;IAC/B,CAAC;IACDC,OAAO,EAAEb,UAAU,CAACa,OAAO,IAAI,EAAE;IACjCC,mBAAmB,EAAEd,UAAU,CAACc,mBAAmB,IAAI,EAAE;IACzDZ;EACJ,CAAC;AACL,CAAC;AAMD,OAAO,MAAMa,MAAM,GAAGA,CAAC;EAAEnB;AAAsB,CAAC,KAAK;EACjD,oBAAOxB,KAAA,CAAAoB,aAAA,CAACP,IAAI,CAAC+B,YAAY,QAAEpB,QAA4B,CAAC;AAC5D,CAAC;AAMD,OAAO,MAAMqB,OAAO,GAAGA,CAAC;EAAErB;AAAuB,CAAC,KAAK;EACnD,oBAAOxB,KAAA,CAAAoB,aAAA,CAACP,IAAI,CAACiC,aAAa,QAAEtB,QAA6B,CAAC;AAC9D,CAAC;AAED,OAAO,MAAMuB,WAAW,GAAGhC,MAAM,CAACC,MAAM,CAAC6B,OAAO,EAAE;EAC9CF,MAAM;EACNtC,KAAK;EACLH,IAAI;EACJE,KAAK;EACLD,MAAM;EACNM,KAAK;EACLC,IAAI;EACJJ,SAAS;EACTC,QAAQ;EACRC,YAAY;EACZmB;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","createProvider","Menu","Tenant","Route","Theme","Dashboard","Security","LexicalTheme","Title","Logo","Dialog","Form","createAdminConfig","createLexicalTokens","base","AdminWithConfig","Object","assign","WithConfig","displayName","AdminConfigPlugin","createElement","ApplyProtectedConfig","AdminConfigProvider","Original","children","ApplyPublicConfig","lexicalTokens","useAdminConfig","baseConfig","useConfig","lexicalTheme","colors","typography","tokens","menus","userMenus","supportMenus","title","logo","squareLogo","horizontalLogo","widgets","permissionRenderers","dialogs","fieldRenderers","Public","PublicConfig","Private","PrivateConfig","AdminConfig"],"sources":["AdminConfig.tsx"],"sourcesContent":["import React from \"react\";\nimport { createProvider } from \"@webiny/app\";\nimport { Menu, type MenuConfig } from \"./AdminConfig/Menu.js\";\nimport type { TenantConfig } from \"./AdminConfig/Tenant.js\";\nimport { Tenant } from \"./AdminConfig/Tenant.js\";\nimport type { SupportMenuConfig } from \"./AdminConfig/Menu/SupportMenu.js\";\nimport type { UserMenuConfig } from \"./AdminConfig/Menu/UserMenu.js\";\nimport { Route } from \"./AdminConfig/Route.js\";\nimport { Theme } from \"./AdminConfig/Theme.js\";\nimport { Dashboard } from \"./AdminConfig/Dashboard.js\";\nimport { type WidgetConfig } from \"./AdminConfig/Widget.js\";\nimport { Security } from \"./AdminConfig/Security.js\";\nimport type { PermissionRendererConfig } from \"../permissions/types.js\";\nimport { LexicalTheme } from \"./AdminConfig/LexicalTheme.js\";\nimport { Title } from \"./AdminConfig/Title.js\";\nimport { Logo } from \"./AdminConfig/Logo.js\";\nimport { Dialog } from \"./AdminConfig/Dialog.js\";\nimport type { DialogConfig } from \"./AdminConfig/Dialog.js\";\nimport { Form } from \"./AdminConfig/Form.js\";\nimport type { FieldRendererConfig } from \"./AdminConfig/FieldRenderer.js\";\nimport { createAdminConfig } from \"./createAdminConfig.js\";\nimport type { EditorTheme } from \"@webiny/lexical-theme\";\nimport { createLexicalTokens } from \"@webiny/lexical-theme/createLexicalEditorTokens.js\";\n\nconst base = createAdminConfig<AdminConfig>();\n\nexport const AdminWithConfig = Object.assign(base.WithConfig, {\n displayName: \"AdminWithConfig\"\n});\n\ninterface AdminConfig {\n menus: MenuConfig[];\n supportMenus: SupportMenuConfig[];\n userMenus: UserMenuConfig[];\n tenant: TenantConfig;\n title: string;\n squareLogo: React.ReactNode;\n horizontalLogo: React.ReactNode;\n widgets: WidgetConfig[];\n permissionRenderers: PermissionRendererConfig[];\n lexicalTheme: EditorTheme;\n dialogs: DialogConfig[];\n fieldRenderers: FieldRendererConfig[];\n}\n\n/* Once the app fully renders (after the LoginScreen), apply protected configs. */\nexport const AdminConfigPlugin = <base.ApplyProtectedConfig />;\n\nexport const AdminConfigProvider = createProvider(Original => {\n return function AdminConfigProvider({ children }) {\n return (\n <AdminWithConfig>\n <base.ApplyPublicConfig />\n <Original>{children}</Original>\n </AdminWithConfig>\n );\n };\n});\n\nconst lexicalTokens = createLexicalTokens(\"wa-lx-\");\n\nexport const useAdminConfig = () => {\n const baseConfig = base.useConfig();\n\n const lexicalTheme: EditorTheme = {\n colors: baseConfig.lexicalTheme?.colors,\n typography: baseConfig.lexicalTheme?.typography || {},\n tokens: lexicalTokens\n };\n\n return {\n menus: baseConfig.menus ?? [],\n userMenus: baseConfig.userMenus ?? [],\n supportMenus: baseConfig.supportMenus ?? [],\n title: baseConfig.title,\n logo: {\n squareLogo: baseConfig.squareLogo,\n horizontalLogo: baseConfig.horizontalLogo\n },\n widgets: baseConfig.widgets ?? [],\n permissionRenderers: baseConfig.permissionRenderers ?? [],\n lexicalTheme,\n dialogs: baseConfig.dialogs ?? [],\n fieldRenderers: baseConfig.fieldRenderers ?? []\n };\n};\n\nexport interface PublicProps {\n children: React.ReactNode;\n}\n\nexport const Public = ({ children }: PublicProps) => {\n return <base.PublicConfig>{children}</base.PublicConfig>;\n};\n\nexport interface PrivateProps {\n children: React.ReactNode;\n}\n\nexport const Private = ({ children }: PrivateProps) => {\n return <base.PrivateConfig>{children}</base.PrivateConfig>;\n};\n\nexport const AdminConfig = Object.assign(Private, {\n Public,\n Theme,\n Menu,\n Route,\n Tenant,\n Title,\n Logo,\n Dashboard,\n Security,\n LexicalTheme,\n Dialog,\n Form,\n useAdminConfig\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,9 @@
1
+ export { createPermissionSchema } from "../../permissions/index.js";
2
+ export { createPermissionsAbstraction } from "../../permissions/index.js";
3
+ export { createPermissionsFeature } from "../../permissions/index.js";
4
+ export { createHasPermission } from "../../permissions/index.js";
5
+ export { createUsePermissions } from "../../permissions/index.js";
6
+ export type { Permissions } from "../../permissions/types.js";
1
7
  export { LogInUseCase } from "../../features/security/LogIn/index.js";
2
8
  export { LogOutUseCase } from "../../features/security/LogOut/index.js";
3
9
  export { AuthenticationContext } from "../../features/security/AuthenticationContext/index.js";
@@ -1,3 +1,8 @@
1
+ export { createPermissionSchema } from "../../permissions/index.js";
2
+ export { createPermissionsAbstraction } from "../../permissions/index.js";
3
+ export { createPermissionsFeature } from "../../permissions/index.js";
4
+ export { createHasPermission } from "../../permissions/index.js";
5
+ export { createUsePermissions } from "../../permissions/index.js";
1
6
  export { LogInUseCase } from "../../features/security/LogIn/index.js";
2
7
  export { LogOutUseCase } from "../../features/security/LogOut/index.js";
3
8
  export { AuthenticationContext } from "../../features/security/AuthenticationContext/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["LogInUseCase","LogOutUseCase","AuthenticationContext","IdentityContext","useAuthentication","useIdentity","HasPermissionComponent","LoginScreenComponent"],"sources":["security.ts"],"sourcesContent":["export { LogInUseCase } from \"~/features/security/LogIn/index.js\";\nexport { LogOutUseCase } from \"~/features/security/LogOut/index.js\";\nexport { AuthenticationContext } from \"~/features/security/AuthenticationContext/index.js\";\nexport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nexport { useAuthentication } from \"~/presentation/security/hooks/useAuthentication.js\";\nexport { useIdentity } from \"~/presentation/security/hooks/useIdentity.js\";\nexport { HasPermissionComponent } from \"~/presentation/security/components/HasPermission.js\";\nexport { LoginScreenComponent } from \"~/base/ui/LoginScreen.js\";\n"],"mappings":"AAAA,SAASA,YAAY;AACrB,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,sBAAsB;AAC/B,SAASC,oBAAoB","ignoreList":[]}
1
+ {"version":3,"names":["createPermissionSchema","createPermissionsAbstraction","createPermissionsFeature","createHasPermission","createUsePermissions","LogInUseCase","LogOutUseCase","AuthenticationContext","IdentityContext","useAuthentication","useIdentity","HasPermissionComponent","LoginScreenComponent"],"sources":["security.ts"],"sourcesContent":["export { createPermissionSchema } from \"~/permissions/index.js\";\nexport { createPermissionsAbstraction } from \"~/permissions/index.js\";\nexport { createPermissionsFeature } from \"~/permissions/index.js\";\nexport { createHasPermission } from \"~/permissions/index.js\";\nexport { createUsePermissions } from \"~/permissions/index.js\";\nexport type { Permissions } from \"~/permissions/types.js\";\nexport { LogInUseCase } from \"~/features/security/LogIn/index.js\";\nexport { LogOutUseCase } from \"~/features/security/LogOut/index.js\";\nexport { AuthenticationContext } from \"~/features/security/AuthenticationContext/index.js\";\nexport { IdentityContext } from \"~/features/security/IdentityContext/index.js\";\nexport { useAuthentication } from \"~/presentation/security/hooks/useAuthentication.js\";\nexport { useIdentity } from \"~/presentation/security/hooks/useIdentity.js\";\nexport { HasPermissionComponent } from \"~/presentation/security/components/HasPermission.js\";\nexport { LoginScreenComponent } from \"~/base/ui/LoginScreen.js\";\n"],"mappings":"AAAA,SAASA,sBAAsB;AAC/B,SAASC,4BAA4B;AACrC,SAASC,wBAAwB;AACjC,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB;AAE7B,SAASC,YAAY;AACrB,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,eAAe;AACxB,SAASC,iBAAiB;AAC1B,SAASC,WAAW;AACpB,SAASC,sBAAsB;AAC/B,SAASC,oBAAoB","ignoreList":[]}
@@ -1,3 +1,5 @@
1
+ export { useDialog } from "../../hooks/index.js";
2
+ export { useOpenDialog } from "../../hooks/index.js";
1
3
  export { useHotkeys } from "../../hooks/useHotkeys.js";
2
4
  export { useDialogs } from "../../components/Dialogs/useDialogs.js";
3
5
  export { Logo } from "../../base/ui/Logo.js";
@@ -1,3 +1,5 @@
1
+ export { useDialog } from "../../hooks/index.js";
2
+ export { useOpenDialog } from "../../hooks/index.js";
1
3
  export { useHotkeys } from "../../hooks/useHotkeys.js";
2
4
  export { useDialogs } from "../../components/Dialogs/useDialogs.js";
3
5
  export { Logo } from "../../base/ui/Logo.js";
@@ -1 +1 @@
1
- {"version":3,"names":["useHotkeys","useDialogs","Logo","TenantSelector","LexicalEditor"],"sources":["ui.ts"],"sourcesContent":["export { useHotkeys } from \"~/hooks/useHotkeys.js\";\nexport { useDialogs } from \"~/components/Dialogs/useDialogs.js\";\nexport { Logo } from \"~/base/ui/Logo.js\";\nexport { TenantSelector } from \"~/base/ui/TenantSelector.js\";\nexport { LexicalEditor } from \"~/components/LexicalEditor/LexicalEditor.js\";\n"],"mappings":"AAAA,SAASA,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,IAAI;AACb,SAASC,cAAc;AACvB,SAASC,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["useDialog","useOpenDialog","useHotkeys","useDialogs","Logo","TenantSelector","LexicalEditor"],"sources":["ui.ts"],"sourcesContent":["export { useDialog } from \"~/hooks/index.js\";\nexport { useOpenDialog } from \"~/hooks/index.js\";\nexport { useHotkeys } from \"~/hooks/useHotkeys.js\";\nexport { useDialogs } from \"~/components/Dialogs/useDialogs.js\";\nexport { Logo } from \"~/base/ui/Logo.js\";\nexport { TenantSelector } from \"~/base/ui/TenantSelector.js\";\nexport { LexicalEditor } from \"~/components/LexicalEditor/LexicalEditor.js\";\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,SAASC,aAAa;AACtB,SAASC,UAAU;AACnB,SAASC,UAAU;AACnB,SAASC,IAAI;AACb,SAASC,cAAc;AACvB,SAASC,aAAa","ignoreList":[]}
@@ -1,7 +1,4 @@
1
1
  export { DevToolsSection } from "../components/index.js";
2
- export { createPermissionSchema } from "../permissions/index.js";
3
- export { createHasPermission } from "../permissions/index.js";
4
- export { createUsePermissions } from "../permissions/index.js";
5
2
  export { RegisterFeature } from "../components/RegisterFeature.js";
6
3
  export { BuildParam, BuildParams } from "../features/buildParams/index.js";
7
4
  export { AdminConfig } from "../config/AdminConfig.js";
package/exports/admin.js CHANGED
@@ -1,7 +1,4 @@
1
1
  export { DevToolsSection } from "../components/index.js";
2
- export { createPermissionSchema } from "../permissions/index.js";
3
- export { createHasPermission } from "../permissions/index.js";
4
- export { createUsePermissions } from "../permissions/index.js";
5
2
  export { RegisterFeature } from "../components/RegisterFeature.js";
6
3
  export { BuildParam, BuildParams } from "../features/buildParams/index.js";
7
4
  export { AdminConfig } from "../config/AdminConfig.js";
@@ -1 +1 @@
1
- {"version":3,"names":["DevToolsSection","createPermissionSchema","createHasPermission","createUsePermissions","RegisterFeature","BuildParam","BuildParams","AdminConfig","Routes"],"sources":["admin.ts"],"sourcesContent":["export { DevToolsSection } from \"~/components/index.js\";\nexport { createPermissionSchema } from \"~/permissions/index.js\";\nexport { createHasPermission } from \"~/permissions/index.js\";\nexport { createUsePermissions } from \"~/permissions/index.js\";\nexport { RegisterFeature } from \"~/components/RegisterFeature.js\";\nexport { BuildParam, BuildParams } from \"~/features/buildParams/index.js\";\nexport { AdminConfig } from \"~/config/AdminConfig.js\";\nexport { Routes } from \"~/routes.js\";\n"],"mappings":"AAAA,SAASA,eAAe;AACxB,SAASC,sBAAsB;AAC/B,SAASC,mBAAmB;AAC5B,SAASC,oBAAoB;AAC7B,SAASC,eAAe;AACxB,SAASC,UAAU,EAAEC,WAAW;AAChC,SAASC,WAAW;AACpB,SAASC,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["DevToolsSection","RegisterFeature","BuildParam","BuildParams","AdminConfig","Routes"],"sources":["admin.ts"],"sourcesContent":["export { DevToolsSection } from \"~/components/index.js\";\nexport { RegisterFeature } from \"~/components/RegisterFeature.js\";\nexport { BuildParam, BuildParams } from \"~/features/buildParams/index.js\";\nexport { AdminConfig } from \"~/config/AdminConfig.js\";\nexport { Routes } from \"~/routes.js\";\n"],"mappings":"AAAA,SAASA,eAAe;AACxB,SAASC,eAAe;AACxB,SAASC,UAAU,EAAEC,WAAW;AAChC,SAASC,WAAW;AACpB,SAASC,MAAM","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ import type { IFieldConfig, IFieldVM, IFieldValidation, IFormModel, IField, FieldTypeMap, BeforeChangeCallback, AfterChangeCallback, AfterSetValueCallback, OnBlurCallback } from "./abstractions.js";
2
+ /**
3
+ * Runtime observable field. Holds value, validation state, and exposes a VM for renderers.
4
+ */
5
+ export declare class Field implements IField {
6
+ private _value;
7
+ private _validation;
8
+ private _disabled;
9
+ private _hidden;
10
+ private _beforeChangeCallbacks;
11
+ private _afterChangeCallbacks;
12
+ private _afterSetValueCallbacks;
13
+ private _onBlurCallbacks;
14
+ private _isUIChange;
15
+ private _form;
16
+ readonly config: IFieldConfig;
17
+ constructor(config: IFieldConfig);
18
+ get name(): string;
19
+ get type(): string;
20
+ getValue<T = unknown>(): T;
21
+ /**
22
+ * Set value with beforeChange/afterChange pipeline.
23
+ * beforeChange always runs (pure transform).
24
+ * afterChange only fires when value actually changed.
25
+ */
26
+ setValue(raw: unknown): void;
27
+ /**
28
+ * Set value directly without running pipelines. Used by setData().
29
+ */
30
+ setValueSilent(value: unknown): void;
31
+ setDisabled(value: boolean): void;
32
+ get visible(): boolean;
33
+ setVisible(value: boolean): void;
34
+ setValidation(validation: IFieldValidation): void;
35
+ resetValidation(): void;
36
+ addBeforeChange(cb: BeforeChangeCallback): void;
37
+ addAfterChange(cb: AfterChangeCallback): void;
38
+ addAfterSetValue(cb: AfterSetValueCallback): void;
39
+ addOnBlur(cb: OnBlurCallback): void;
40
+ blur(): void;
41
+ setForm(form: IFormModel): void;
42
+ as<T extends keyof FieldTypeMap>(type: T): FieldTypeMap[T];
43
+ remove(): void;
44
+ get vm(): IFieldVM;
45
+ private _setValueFromUI;
46
+ private _resolveOptions;
47
+ /**
48
+ * Validate this field. Returns true if valid.
49
+ * Validation order: required check → zod schema.
50
+ */
51
+ validate(): Promise<boolean>;
52
+ }
@@ -0,0 +1,201 @@
1
+ import { makeAutoObservable, computed, runInAction } from "mobx";
2
+ /**
3
+ * Runtime observable field. Holds value, validation state, and exposes a VM for renderers.
4
+ */
5
+ export class Field {
6
+ _validation = {
7
+ isValid: null
8
+ };
9
+ _beforeChangeCallbacks = [];
10
+ _afterChangeCallbacks = [];
11
+ _afterSetValueCallbacks = [];
12
+ _onBlurCallbacks = [];
13
+ _isUIChange = false;
14
+ _form = null;
15
+ constructor(config) {
16
+ this.config = config;
17
+ this._value = config.defaultValue ?? null;
18
+ this._disabled = config.disabled;
19
+ this._hidden = config.hidden;
20
+ if (config.beforeChangeCallbacks) {
21
+ this._beforeChangeCallbacks = [...config.beforeChangeCallbacks];
22
+ }
23
+ if (config.afterChangeCallbacks) {
24
+ this._afterChangeCallbacks = [...config.afterChangeCallbacks];
25
+ }
26
+ if (config.afterSetValueCallbacks) {
27
+ this._afterSetValueCallbacks = [...config.afterSetValueCallbacks];
28
+ }
29
+ if (config.onBlurCallbacks) {
30
+ this._onBlurCallbacks = [...config.onBlurCallbacks];
31
+ }
32
+ makeAutoObservable(this, {
33
+ config: false,
34
+ vm: computed
35
+ });
36
+ }
37
+ get name() {
38
+ return this.config.name;
39
+ }
40
+ get type() {
41
+ return this.config.type;
42
+ }
43
+ getValue() {
44
+ return this._value;
45
+ }
46
+
47
+ /**
48
+ * Set value with beforeChange/afterChange pipeline.
49
+ * beforeChange always runs (pure transform).
50
+ * afterChange only fires when value actually changed.
51
+ */
52
+ setValue(raw) {
53
+ let transformed = raw;
54
+ for (const cb of this._beforeChangeCallbacks) {
55
+ transformed = cb(transformed, this._form);
56
+ }
57
+ if (transformed === this._value) {
58
+ return;
59
+ }
60
+ this._value = transformed;
61
+ for (const cb of this._afterChangeCallbacks) {
62
+ cb(transformed, this._form);
63
+ }
64
+ if (!this._isUIChange) {
65
+ for (const cb of this._afterSetValueCallbacks) {
66
+ cb(transformed, this._form);
67
+ }
68
+ }
69
+ }
70
+
71
+ /**
72
+ * Set value directly without running pipelines. Used by setData().
73
+ */
74
+ setValueSilent(value) {
75
+ this._value = value;
76
+ }
77
+ setDisabled(value) {
78
+ this._disabled = value;
79
+ }
80
+ get visible() {
81
+ return !this._hidden;
82
+ }
83
+ setVisible(value) {
84
+ this._hidden = !value;
85
+ }
86
+ setValidation(validation) {
87
+ this._validation = validation;
88
+ }
89
+ resetValidation() {
90
+ this._validation = {
91
+ isValid: null
92
+ };
93
+ }
94
+ addBeforeChange(cb) {
95
+ this._beforeChangeCallbacks.push(cb);
96
+ }
97
+ addAfterChange(cb) {
98
+ this._afterChangeCallbacks.push(cb);
99
+ }
100
+ addAfterSetValue(cb) {
101
+ this._afterSetValueCallbacks.push(cb);
102
+ }
103
+ addOnBlur(cb) {
104
+ this._onBlurCallbacks.push(cb);
105
+ }
106
+ blur() {
107
+ for (const cb of this._onBlurCallbacks) {
108
+ cb(this._value, this._form);
109
+ }
110
+ }
111
+ setForm(form) {
112
+ this._form = form;
113
+ }
114
+ as(type) {
115
+ if (this.config.type !== type) {
116
+ throw new Error(`Field "${this.config.name}" is type "${this.config.type}", not "${type}".`);
117
+ }
118
+ return this;
119
+ }
120
+ remove() {
121
+ if (!this._form) {
122
+ throw new Error(`Field "${this.config.name}" is not attached to a form.`);
123
+ }
124
+ this._form.removeField(this.config.name);
125
+ }
126
+ get vm() {
127
+ const options = this._resolveOptions();
128
+ return {
129
+ name: this.config.name,
130
+ type: this.config.type,
131
+ label: this.config.label,
132
+ placeholder: this.config.placeholder,
133
+ value: this._value,
134
+ validation: this._validation,
135
+ required: this.config.required,
136
+ disabled: this._disabled,
137
+ renderer: this.config.renderer,
138
+ options,
139
+ onChange: value => this._setValueFromUI(value),
140
+ onBlur: () => this.blur()
141
+ };
142
+ }
143
+ _setValueFromUI(value) {
144
+ this._isUIChange = true;
145
+ try {
146
+ this.setValue(value);
147
+ } finally {
148
+ this._isUIChange = false;
149
+ }
150
+ }
151
+ _resolveOptions() {
152
+ if (!this.config.options) {
153
+ return undefined;
154
+ }
155
+ if (typeof this.config.options === "function") {
156
+ return this.config.options(this._form);
157
+ }
158
+ return this.config.options;
159
+ }
160
+
161
+ /**
162
+ * Validate this field. Returns true if valid.
163
+ * Validation order: required check → zod schema.
164
+ */
165
+ async validate() {
166
+ // Required check
167
+ if (this.config.required) {
168
+ const value = this._value;
169
+ if (value === null || value === undefined || value === "") {
170
+ this._validation = {
171
+ isValid: false,
172
+ message: this.config.requiredMessage || "This field is required."
173
+ };
174
+ return false;
175
+ }
176
+ }
177
+
178
+ // Zod schema check
179
+ if (this.config.schema) {
180
+ const result = await this.config.schema.safeParseAsync(this._value);
181
+ if (!result.success) {
182
+ const firstIssue = result.error.issues[0];
183
+ runInAction(() => {
184
+ this._validation = {
185
+ isValid: false,
186
+ message: firstIssue?.message || "Invalid value."
187
+ };
188
+ });
189
+ return false;
190
+ }
191
+ }
192
+ runInAction(() => {
193
+ this._validation = {
194
+ isValid: true
195
+ };
196
+ });
197
+ return true;
198
+ }
199
+ }
200
+
201
+ //# sourceMappingURL=Field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["makeAutoObservable","computed","runInAction","Field","_validation","isValid","_beforeChangeCallbacks","_afterChangeCallbacks","_afterSetValueCallbacks","_onBlurCallbacks","_isUIChange","_form","constructor","config","_value","defaultValue","_disabled","disabled","_hidden","hidden","beforeChangeCallbacks","afterChangeCallbacks","afterSetValueCallbacks","onBlurCallbacks","vm","name","type","getValue","setValue","raw","transformed","cb","setValueSilent","value","setDisabled","visible","setVisible","setValidation","validation","resetValidation","addBeforeChange","push","addAfterChange","addAfterSetValue","addOnBlur","blur","setForm","form","as","Error","remove","removeField","options","_resolveOptions","label","placeholder","required","renderer","onChange","_setValueFromUI","onBlur","undefined","validate","message","requiredMessage","schema","result","safeParseAsync","success","firstIssue","error","issues"],"sources":["Field.ts"],"sourcesContent":["import { makeAutoObservable, computed, runInAction } from \"mobx\";\nimport type {\n IFieldConfig,\n IFieldVM,\n IFieldValidation,\n IValueOption,\n IFormModel,\n IField,\n FieldTypeMap,\n BeforeChangeCallback,\n AfterChangeCallback,\n AfterSetValueCallback,\n OnBlurCallback\n} from \"./abstractions.js\";\n\n/**\n * Runtime observable field. Holds value, validation state, and exposes a VM for renderers.\n */\nexport class Field implements IField {\n private _value: unknown;\n private _validation: IFieldValidation = { isValid: null };\n private _disabled: boolean;\n private _hidden: boolean;\n private _beforeChangeCallbacks: BeforeChangeCallback[] = [];\n private _afterChangeCallbacks: AfterChangeCallback[] = [];\n private _afterSetValueCallbacks: AfterSetValueCallback[] = [];\n private _onBlurCallbacks: OnBlurCallback[] = [];\n private _isUIChange = false;\n private _form: IFormModel | null = null;\n\n readonly config: IFieldConfig;\n\n constructor(config: IFieldConfig) {\n this.config = config;\n this._value = config.defaultValue ?? null;\n this._disabled = config.disabled;\n this._hidden = config.hidden;\n\n if (config.beforeChangeCallbacks) {\n this._beforeChangeCallbacks = [...config.beforeChangeCallbacks];\n }\n if (config.afterChangeCallbacks) {\n this._afterChangeCallbacks = [...config.afterChangeCallbacks];\n }\n if (config.afterSetValueCallbacks) {\n this._afterSetValueCallbacks = [...config.afterSetValueCallbacks];\n }\n if (config.onBlurCallbacks) {\n this._onBlurCallbacks = [...config.onBlurCallbacks];\n }\n\n makeAutoObservable(this, {\n config: false,\n vm: computed\n });\n }\n\n get name(): string {\n return this.config.name;\n }\n\n get type(): string {\n return this.config.type;\n }\n\n getValue<T = unknown>(): T {\n return this._value as T;\n }\n\n /**\n * Set value with beforeChange/afterChange pipeline.\n * beforeChange always runs (pure transform).\n * afterChange only fires when value actually changed.\n */\n setValue(raw: unknown): void {\n let transformed = raw;\n for (const cb of this._beforeChangeCallbacks) {\n transformed = cb(transformed, this._form!);\n }\n\n if (transformed === this._value) {\n return;\n }\n\n this._value = transformed;\n\n for (const cb of this._afterChangeCallbacks) {\n cb(transformed, this._form!);\n }\n\n if (!this._isUIChange) {\n for (const cb of this._afterSetValueCallbacks) {\n cb(transformed, this._form!);\n }\n }\n }\n\n /**\n * Set value directly without running pipelines. Used by setData().\n */\n setValueSilent(value: unknown): void {\n this._value = value;\n }\n\n setDisabled(value: boolean): void {\n this._disabled = value;\n }\n\n get visible(): boolean {\n return !this._hidden;\n }\n\n setVisible(value: boolean): void {\n this._hidden = !value;\n }\n\n setValidation(validation: IFieldValidation): void {\n this._validation = validation;\n }\n\n resetValidation(): void {\n this._validation = { isValid: null };\n }\n\n addBeforeChange(cb: BeforeChangeCallback): void {\n this._beforeChangeCallbacks.push(cb);\n }\n\n addAfterChange(cb: AfterChangeCallback): void {\n this._afterChangeCallbacks.push(cb);\n }\n\n addAfterSetValue(cb: AfterSetValueCallback): void {\n this._afterSetValueCallbacks.push(cb);\n }\n\n addOnBlur(cb: OnBlurCallback): void {\n this._onBlurCallbacks.push(cb);\n }\n\n blur(): void {\n for (const cb of this._onBlurCallbacks) {\n cb(this._value, this._form!);\n }\n }\n\n setForm(form: IFormModel): void {\n this._form = form;\n }\n\n as<T extends keyof FieldTypeMap>(type: T): FieldTypeMap[T] {\n if (this.config.type !== type) {\n throw new Error(\n `Field \"${this.config.name}\" is type \"${this.config.type}\", not \"${type}\".`\n );\n }\n return this as unknown as FieldTypeMap[T];\n }\n\n remove(): void {\n if (!this._form) {\n throw new Error(`Field \"${this.config.name}\" is not attached to a form.`);\n }\n (this._form as any).removeField(this.config.name);\n }\n\n get vm(): IFieldVM {\n const options = this._resolveOptions();\n\n return {\n name: this.config.name,\n type: this.config.type,\n label: this.config.label,\n placeholder: this.config.placeholder,\n value: this._value,\n validation: this._validation,\n required: this.config.required,\n disabled: this._disabled,\n renderer: this.config.renderer,\n options,\n onChange: (value: unknown) => this._setValueFromUI(value),\n onBlur: () => this.blur()\n };\n }\n\n private _setValueFromUI(value: unknown): void {\n this._isUIChange = true;\n try {\n this.setValue(value);\n } finally {\n this._isUIChange = false;\n }\n }\n\n private _resolveOptions(): IValueOption[] | undefined {\n if (!this.config.options) {\n return undefined;\n }\n if (typeof this.config.options === \"function\") {\n return this.config.options(this._form!);\n }\n return this.config.options;\n }\n\n /**\n * Validate this field. Returns true if valid.\n * Validation order: required check → zod schema.\n */\n async validate(): Promise<boolean> {\n // Required check\n if (this.config.required) {\n const value = this._value;\n if (value === null || value === undefined || value === \"\") {\n this._validation = {\n isValid: false,\n message: this.config.requiredMessage || \"This field is required.\"\n };\n return false;\n }\n }\n\n // Zod schema check\n if (this.config.schema) {\n const result = await this.config.schema.safeParseAsync(this._value);\n if (!result.success) {\n const firstIssue = result.error.issues[0];\n runInAction(() => {\n this._validation = {\n isValid: false,\n message: firstIssue?.message || \"Invalid value.\"\n };\n });\n return false;\n }\n }\n\n runInAction(() => {\n this._validation = { isValid: true };\n });\n return true;\n }\n}\n"],"mappings":"AAAA,SAASA,kBAAkB,EAAEC,QAAQ,EAAEC,WAAW,QAAQ,MAAM;AAehE;AACA;AACA;AACA,OAAO,MAAMC,KAAK,CAAmB;EAEzBC,WAAW,GAAqB;IAAEC,OAAO,EAAE;EAAK,CAAC;EAGjDC,sBAAsB,GAA2B,EAAE;EACnDC,qBAAqB,GAA0B,EAAE;EACjDC,uBAAuB,GAA4B,EAAE;EACrDC,gBAAgB,GAAqB,EAAE;EACvCC,WAAW,GAAG,KAAK;EACnBC,KAAK,GAAsB,IAAI;EAIvCC,WAAWA,CAACC,MAAoB,EAAE;IAC9B,IAAI,CAACA,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACC,MAAM,GAAGD,MAAM,CAACE,YAAY,IAAI,IAAI;IACzC,IAAI,CAACC,SAAS,GAAGH,MAAM,CAACI,QAAQ;IAChC,IAAI,CAACC,OAAO,GAAGL,MAAM,CAACM,MAAM;IAE5B,IAAIN,MAAM,CAACO,qBAAqB,EAAE;MAC9B,IAAI,CAACd,sBAAsB,GAAG,CAAC,GAAGO,MAAM,CAACO,qBAAqB,CAAC;IACnE;IACA,IAAIP,MAAM,CAACQ,oBAAoB,EAAE;MAC7B,IAAI,CAACd,qBAAqB,GAAG,CAAC,GAAGM,MAAM,CAACQ,oBAAoB,CAAC;IACjE;IACA,IAAIR,MAAM,CAACS,sBAAsB,EAAE;MAC/B,IAAI,CAACd,uBAAuB,GAAG,CAAC,GAAGK,MAAM,CAACS,sBAAsB,CAAC;IACrE;IACA,IAAIT,MAAM,CAACU,eAAe,EAAE;MACxB,IAAI,CAACd,gBAAgB,GAAG,CAAC,GAAGI,MAAM,CAACU,eAAe,CAAC;IACvD;IAEAvB,kBAAkB,CAAC,IAAI,EAAE;MACrBa,MAAM,EAAE,KAAK;MACbW,EAAE,EAAEvB;IACR,CAAC,CAAC;EACN;EAEA,IAAIwB,IAAIA,CAAA,EAAW;IACf,OAAO,IAAI,CAACZ,MAAM,CAACY,IAAI;EAC3B;EAEA,IAAIC,IAAIA,CAAA,EAAW;IACf,OAAO,IAAI,CAACb,MAAM,CAACa,IAAI;EAC3B;EAEAC,QAAQA,CAAA,EAAmB;IACvB,OAAO,IAAI,CAACb,MAAM;EACtB;;EAEA;AACJ;AACA;AACA;AACA;EACIc,QAAQA,CAACC,GAAY,EAAQ;IACzB,IAAIC,WAAW,GAAGD,GAAG;IACrB,KAAK,MAAME,EAAE,IAAI,IAAI,CAACzB,sBAAsB,EAAE;MAC1CwB,WAAW,GAAGC,EAAE,CAACD,WAAW,EAAE,IAAI,CAACnB,KAAM,CAAC;IAC9C;IAEA,IAAImB,WAAW,KAAK,IAAI,CAAChB,MAAM,EAAE;MAC7B;IACJ;IAEA,IAAI,CAACA,MAAM,GAAGgB,WAAW;IAEzB,KAAK,MAAMC,EAAE,IAAI,IAAI,CAACxB,qBAAqB,EAAE;MACzCwB,EAAE,CAACD,WAAW,EAAE,IAAI,CAACnB,KAAM,CAAC;IAChC;IAEA,IAAI,CAAC,IAAI,CAACD,WAAW,EAAE;MACnB,KAAK,MAAMqB,EAAE,IAAI,IAAI,CAACvB,uBAAuB,EAAE;QAC3CuB,EAAE,CAACD,WAAW,EAAE,IAAI,CAACnB,KAAM,CAAC;MAChC;IACJ;EACJ;;EAEA;AACJ;AACA;EACIqB,cAAcA,CAACC,KAAc,EAAQ;IACjC,IAAI,CAACnB,MAAM,GAAGmB,KAAK;EACvB;EAEAC,WAAWA,CAACD,KAAc,EAAQ;IAC9B,IAAI,CAACjB,SAAS,GAAGiB,KAAK;EAC1B;EAEA,IAAIE,OAAOA,CAAA,EAAY;IACnB,OAAO,CAAC,IAAI,CAACjB,OAAO;EACxB;EAEAkB,UAAUA,CAACH,KAAc,EAAQ;IAC7B,IAAI,CAACf,OAAO,GAAG,CAACe,KAAK;EACzB;EAEAI,aAAaA,CAACC,UAA4B,EAAQ;IAC9C,IAAI,CAAClC,WAAW,GAAGkC,UAAU;EACjC;EAEAC,eAAeA,CAAA,EAAS;IACpB,IAAI,CAACnC,WAAW,GAAG;MAAEC,OAAO,EAAE;IAAK,CAAC;EACxC;EAEAmC,eAAeA,CAACT,EAAwB,EAAQ;IAC5C,IAAI,CAACzB,sBAAsB,CAACmC,IAAI,CAACV,EAAE,CAAC;EACxC;EAEAW,cAAcA,CAACX,EAAuB,EAAQ;IAC1C,IAAI,CAACxB,qBAAqB,CAACkC,IAAI,CAACV,EAAE,CAAC;EACvC;EAEAY,gBAAgBA,CAACZ,EAAyB,EAAQ;IAC9C,IAAI,CAACvB,uBAAuB,CAACiC,IAAI,CAACV,EAAE,CAAC;EACzC;EAEAa,SAASA,CAACb,EAAkB,EAAQ;IAChC,IAAI,CAACtB,gBAAgB,CAACgC,IAAI,CAACV,EAAE,CAAC;EAClC;EAEAc,IAAIA,CAAA,EAAS;IACT,KAAK,MAAMd,EAAE,IAAI,IAAI,CAACtB,gBAAgB,EAAE;MACpCsB,EAAE,CAAC,IAAI,CAACjB,MAAM,EAAE,IAAI,CAACH,KAAM,CAAC;IAChC;EACJ;EAEAmC,OAAOA,CAACC,IAAgB,EAAQ;IAC5B,IAAI,CAACpC,KAAK,GAAGoC,IAAI;EACrB;EAEAC,EAAEA,CAA+BtB,IAAO,EAAmB;IACvD,IAAI,IAAI,CAACb,MAAM,CAACa,IAAI,KAAKA,IAAI,EAAE;MAC3B,MAAM,IAAIuB,KAAK,CACX,UAAU,IAAI,CAACpC,MAAM,CAACY,IAAI,cAAc,IAAI,CAACZ,MAAM,CAACa,IAAI,WAAWA,IAAI,IAC3E,CAAC;IACL;IACA,OAAO,IAAI;EACf;EAEAwB,MAAMA,CAAA,EAAS;IACX,IAAI,CAAC,IAAI,CAACvC,KAAK,EAAE;MACb,MAAM,IAAIsC,KAAK,CAAC,UAAU,IAAI,CAACpC,MAAM,CAACY,IAAI,8BAA8B,CAAC;IAC7E;IACC,IAAI,CAACd,KAAK,CAASwC,WAAW,CAAC,IAAI,CAACtC,MAAM,CAACY,IAAI,CAAC;EACrD;EAEA,IAAID,EAAEA,CAAA,EAAa;IACf,MAAM4B,OAAO,GAAG,IAAI,CAACC,eAAe,CAAC,CAAC;IAEtC,OAAO;MACH5B,IAAI,EAAE,IAAI,CAACZ,MAAM,CAACY,IAAI;MACtBC,IAAI,EAAE,IAAI,CAACb,MAAM,CAACa,IAAI;MACtB4B,KAAK,EAAE,IAAI,CAACzC,MAAM,CAACyC,KAAK;MACxBC,WAAW,EAAE,IAAI,CAAC1C,MAAM,CAAC0C,WAAW;MACpCtB,KAAK,EAAE,IAAI,CAACnB,MAAM;MAClBwB,UAAU,EAAE,IAAI,CAAClC,WAAW;MAC5BoD,QAAQ,EAAE,IAAI,CAAC3C,MAAM,CAAC2C,QAAQ;MAC9BvC,QAAQ,EAAE,IAAI,CAACD,SAAS;MACxByC,QAAQ,EAAE,IAAI,CAAC5C,MAAM,CAAC4C,QAAQ;MAC9BL,OAAO;MACPM,QAAQ,EAAGzB,KAAc,IAAK,IAAI,CAAC0B,eAAe,CAAC1B,KAAK,CAAC;MACzD2B,MAAM,EAAEA,CAAA,KAAM,IAAI,CAACf,IAAI,CAAC;IAC5B,CAAC;EACL;EAEQc,eAAeA,CAAC1B,KAAc,EAAQ;IAC1C,IAAI,CAACvB,WAAW,GAAG,IAAI;IACvB,IAAI;MACA,IAAI,CAACkB,QAAQ,CAACK,KAAK,CAAC;IACxB,CAAC,SAAS;MACN,IAAI,CAACvB,WAAW,GAAG,KAAK;IAC5B;EACJ;EAEQ2C,eAAeA,CAAA,EAA+B;IAClD,IAAI,CAAC,IAAI,CAACxC,MAAM,CAACuC,OAAO,EAAE;MACtB,OAAOS,SAAS;IACpB;IACA,IAAI,OAAO,IAAI,CAAChD,MAAM,CAACuC,OAAO,KAAK,UAAU,EAAE;MAC3C,OAAO,IAAI,CAACvC,MAAM,CAACuC,OAAO,CAAC,IAAI,CAACzC,KAAM,CAAC;IAC3C;IACA,OAAO,IAAI,CAACE,MAAM,CAACuC,OAAO;EAC9B;;EAEA;AACJ;AACA;AACA;EACI,MAAMU,QAAQA,CAAA,EAAqB;IAC/B;IACA,IAAI,IAAI,CAACjD,MAAM,CAAC2C,QAAQ,EAAE;MACtB,MAAMvB,KAAK,GAAG,IAAI,CAACnB,MAAM;MACzB,IAAImB,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK4B,SAAS,IAAI5B,KAAK,KAAK,EAAE,EAAE;QACvD,IAAI,CAAC7B,WAAW,GAAG;UACfC,OAAO,EAAE,KAAK;UACd0D,OAAO,EAAE,IAAI,CAAClD,MAAM,CAACmD,eAAe,IAAI;QAC5C,CAAC;QACD,OAAO,KAAK;MAChB;IACJ;;IAEA;IACA,IAAI,IAAI,CAACnD,MAAM,CAACoD,MAAM,EAAE;MACpB,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACrD,MAAM,CAACoD,MAAM,CAACE,cAAc,CAAC,IAAI,CAACrD,MAAM,CAAC;MACnE,IAAI,CAACoD,MAAM,CAACE,OAAO,EAAE;QACjB,MAAMC,UAAU,GAAGH,MAAM,CAACI,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC;QACzCrE,WAAW,CAAC,MAAM;UACd,IAAI,CAACE,WAAW,GAAG;YACfC,OAAO,EAAE,KAAK;YACd0D,OAAO,EAAEM,UAAU,EAAEN,OAAO,IAAI;UACpC,CAAC;QACL,CAAC,CAAC;QACF,OAAO,KAAK;MAChB;IACJ;IAEA7D,WAAW,CAAC,MAAM;MACd,IAAI,CAACE,WAAW,GAAG;QAAEC,OAAO,EAAE;MAAK,CAAC;IACxC,CAAC,CAAC;IACF,OAAO,IAAI;EACf;AACJ","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ import type { z } from "zod";
2
+ import type { IFieldConfig, IValueOption, IFormModel, IFieldBuilder, ISelectFieldBuilder, IFieldBuilderRegistry, BeforeChangeCallback, AfterChangeCallback, AfterSetValueCallback, OnBlurCallback } from "./abstractions.js";
3
+ /**
4
+ * Base FieldBuilder with fluent API.
5
+ * Each method mutates `this` and returns `this` for chaining.
6
+ */
7
+ export declare class FieldBuilder<TType extends string = string> implements IFieldBuilder {
8
+ protected _config: IFieldConfig;
9
+ constructor(type: TType);
10
+ get fieldType(): string;
11
+ label(text: string): this;
12
+ placeholder(text: string): this;
13
+ schema(zodSchema: z.ZodTypeAny): this;
14
+ defaultValue(value: unknown): this;
15
+ renderer(name: string): this;
16
+ hidden(): this;
17
+ required(message?: string): this;
18
+ disabled(value?: boolean): this;
19
+ beforeChange(fn: BeforeChangeCallback): this;
20
+ afterChange(fn: AfterChangeCallback): this;
21
+ afterSetValue(fn: AfterSetValueCallback): this;
22
+ onBlur(fn: OnBlurCallback): this;
23
+ build(name: string): IFieldConfig;
24
+ }
25
+ /**
26
+ * Text field builder.
27
+ */
28
+ export declare class TextFieldBuilder extends FieldBuilder<"text"> {
29
+ constructor();
30
+ }
31
+ /**
32
+ * Select field builder with .options() support.
33
+ */
34
+ export declare class SelectFieldBuilder extends FieldBuilder<"select"> implements ISelectFieldBuilder {
35
+ constructor();
36
+ options(opts: IValueOption[] | ((form: IFormModel) => IValueOption[])): this;
37
+ }
38
+ /**
39
+ * Factory interface for creating field builders.
40
+ */
41
+ export interface IFieldTypeFactory {
42
+ readonly type: string;
43
+ create(): FieldBuilder;
44
+ }
45
+ export declare function createFieldBuilderRegistry(factories?: IFieldTypeFactory[]): IFieldBuilderRegistry;