@panneau/protocol 0.0.0-stage → 5.0.0-alpha.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 (92) hide show
  1. package/README.md +31 -2
  2. package/dist/conditions.d.ts +7 -0
  3. package/dist/conditions.d.ts.map +1 -0
  4. package/dist/conditions.js +21 -0
  5. package/dist/conditions.js.map +1 -0
  6. package/dist/conformance/index.d.ts +42 -0
  7. package/dist/conformance/index.d.ts.map +1 -0
  8. package/dist/conformance/index.js +243 -0
  9. package/dist/conformance/index.js.map +1 -0
  10. package/dist/index.d.ts +10 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +19 -0
  13. package/dist/lint.d.ts +8 -0
  14. package/dist/lint.d.ts.map +1 -0
  15. package/dist/lint.js +73 -0
  16. package/dist/lint.js.map +1 -0
  17. package/dist/mock/example.d.ts +8 -0
  18. package/dist/mock/example.d.ts.map +1 -0
  19. package/dist/mock/example.js +186 -0
  20. package/dist/mock/example.js.map +1 -0
  21. package/dist/mock/index.d.ts +24 -0
  22. package/dist/mock/index.d.ts.map +1 -0
  23. package/dist/mock/index.js +250 -0
  24. package/dist/mock/index.js.map +1 -0
  25. package/dist/openapi.d.ts +11 -0
  26. package/dist/openapi.d.ts.map +1 -0
  27. package/dist/openapi.js +540 -0
  28. package/dist/openapi.js.map +1 -0
  29. package/dist/query.d.ts +17 -0
  30. package/dist/query.d.ts.map +1 -0
  31. package/dist/query.js +49 -0
  32. package/dist/query.js.map +1 -0
  33. package/dist/rules.d.ts +29 -0
  34. package/dist/rules.d.ts.map +1 -0
  35. package/dist/rules.js +143 -0
  36. package/dist/rules.js.map +1 -0
  37. package/dist/schemas/action.d.ts +166 -0
  38. package/dist/schemas/action.d.ts.map +1 -0
  39. package/dist/schemas/action.js +66 -0
  40. package/dist/schemas/action.js.map +1 -0
  41. package/dist/schemas/api.d.ts +371 -0
  42. package/dist/schemas/api.d.ts.map +1 -0
  43. package/dist/schemas/api.js +140 -0
  44. package/dist/schemas/api.js.map +1 -0
  45. package/dist/schemas/boot.d.ts +19 -0
  46. package/dist/schemas/boot.d.ts.map +1 -0
  47. package/dist/schemas/boot.js +21 -0
  48. package/dist/schemas/boot.js.map +1 -0
  49. package/dist/schemas/common.d.ts +28 -0
  50. package/dist/schemas/common.d.ts.map +1 -0
  51. package/dist/schemas/common.js +35 -0
  52. package/dist/schemas/common.js.map +1 -0
  53. package/dist/schemas/definition.d.ts +462 -0
  54. package/dist/schemas/definition.d.ts.map +1 -0
  55. package/dist/schemas/definition.js +101 -0
  56. package/dist/schemas/definition.js.map +1 -0
  57. package/dist/schemas/field.d.ts +145 -0
  58. package/dist/schemas/field.d.ts.map +1 -0
  59. package/dist/schemas/field.js +127 -0
  60. package/dist/schemas/field.js.map +1 -0
  61. package/dist/schemas/index.d.ts +1536 -0
  62. package/dist/schemas/index.d.ts.map +1 -0
  63. package/dist/schemas/index.js +68 -0
  64. package/dist/schemas/index.js.map +1 -0
  65. package/dist/schemas/layout.d.ts +29 -0
  66. package/dist/schemas/layout.d.ts.map +1 -0
  67. package/dist/schemas/layout.js +35 -0
  68. package/dist/schemas/layout.js.map +1 -0
  69. package/dist/schemas/list.d.ts +72 -0
  70. package/dist/schemas/list.d.ts.map +1 -0
  71. package/dist/schemas/list.js +48 -0
  72. package/dist/schemas/list.js.map +1 -0
  73. package/dist/schemas/resource.d.ts +328 -0
  74. package/dist/schemas/resource.d.ts.map +1 -0
  75. package/dist/schemas/resource.js +38 -0
  76. package/dist/schemas/resource.js.map +1 -0
  77. package/dist/validate.d.ts +31 -0
  78. package/dist/validate.d.ts.map +1 -0
  79. package/dist/validate.js +57 -0
  80. package/dist/validate.js.map +1 -0
  81. package/dist/values.d.ts +7 -0
  82. package/dist/values.d.ts.map +1 -0
  83. package/dist/values.js +29 -0
  84. package/dist/values.js.map +1 -0
  85. package/dist/version.d.ts +5 -0
  86. package/dist/version.d.ts.map +1 -0
  87. package/dist/version.js +9 -0
  88. package/dist/version.js.map +1 -0
  89. package/package.json +48 -5
  90. package/schema/boot.schema.json +1229 -0
  91. package/schema/definition.schema.json +1195 -0
  92. package/schema/openapi.json +3838 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAuBxB,OAAO,EAAa,SAAS,EAA8B,MAAM,UAAU,CAAC;AAC5E,OAAO,EAIH,QAAQ,EAKX,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAQ,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AAEvB,wGAAwG;AACxG,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CY,CAAC;AAEtC,0FAA0F;AAC1F,wBAAgB,oBAAoB;QACE,MAAM;kFAG3C"}
@@ -0,0 +1,68 @@
1
+ import { Abilities, Condition, Id, Option, RouteReference } from "./common.js";
2
+ import { BUILT_IN_FIELD_TYPES, BlockType, Field, PORTABLE_RULES, Rule } from "./field.js";
3
+ import { BUILT_IN_LAYOUT_NODE_TYPES, LayoutNode } from "./layout.js";
4
+ import { Action, ActionConfirm, ActionPlacement, ActionScope, BUILT_IN_ACTIONS } from "./action.js";
5
+ import { BUILT_IN_LIST_LAYOUTS, Column, Filter, ListDefinition } from "./list.js";
6
+ import { Resource, ResourceFeatures } from "./resource.js";
7
+ import { Auth, AuthProvider, Definition, MenuItem, Page, Uploads, User, Widget } from "./definition.js";
8
+ import { ActionItemResult, ActionRequest, ActionResult, ActionRun, ActionRunResponse, Item, ItemResponse, ListResponse, Media, MediaListResponse, MediaResponse, MediaTransform, Pagination, PreviewResponse, Problem, SearchResponse, Selection, Session } from "./api.js";
9
+ import { BOOT_CONFIG_ELEMENT_ID, BootConfig } from "./boot.js";
10
+ import { z } from "zod";
11
+ //#region src/schemas/index.ts
12
+ /** The named schemas of the protocol, as they appear in the generated JSON Schema and OpenAPI files. */
13
+ var namedSchemas = {
14
+ Id,
15
+ Abilities,
16
+ RouteReference,
17
+ Condition,
18
+ Option,
19
+ Rule,
20
+ BlockType,
21
+ Field,
22
+ LayoutNode,
23
+ Column,
24
+ Filter,
25
+ ListDefinition,
26
+ ActionScope,
27
+ ActionPlacement,
28
+ ActionConfirm,
29
+ Action,
30
+ ResourceFeatures,
31
+ Resource,
32
+ User,
33
+ AuthProvider,
34
+ Auth,
35
+ MenuItem,
36
+ Page,
37
+ Widget,
38
+ Uploads,
39
+ Definition,
40
+ Item,
41
+ Pagination,
42
+ ItemResponse,
43
+ ListResponse,
44
+ Problem,
45
+ Selection,
46
+ ActionRequest,
47
+ ActionItemResult,
48
+ ActionResult,
49
+ ActionRun,
50
+ ActionRunResponse,
51
+ MediaTransform,
52
+ Media,
53
+ MediaResponse,
54
+ MediaListResponse,
55
+ Session,
56
+ SearchResponse,
57
+ PreviewResponse
58
+ };
59
+ /** A registry of the named schemas, used to reference them by name in generated files. */
60
+ function createSchemaRegistry() {
61
+ const registry = z.registry();
62
+ Object.entries(namedSchemas).forEach(([id, schema]) => registry.add(schema, { id }));
63
+ return registry;
64
+ }
65
+ //#endregion
66
+ export { Abilities, Action, ActionConfirm, ActionItemResult, ActionPlacement, ActionRequest, ActionResult, ActionRun, ActionRunResponse, ActionScope, Auth, AuthProvider, BOOT_CONFIG_ELEMENT_ID, BUILT_IN_ACTIONS, BUILT_IN_FIELD_TYPES, BUILT_IN_LAYOUT_NODE_TYPES, BUILT_IN_LIST_LAYOUTS, BlockType, BootConfig, Column, Condition, Definition, Field, Filter, Id, Item, ItemResponse, LayoutNode, ListDefinition, ListResponse, Media, MediaListResponse, MediaResponse, MediaTransform, MenuItem, Option, PORTABLE_RULES, Page, Pagination, PreviewResponse, Problem, Resource, ResourceFeatures, RouteReference, Rule, SearchResponse, Selection, Session, Uploads, User, Widget, createSchemaRegistry, namedSchemas };
67
+
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/schemas/index.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { Action, ActionConfirm, ActionPlacement, ActionScope } from './action';\nimport {\n ActionItemResult,\n ActionRequest,\n ActionResult,\n ActionRun,\n ActionRunResponse,\n Item,\n ItemResponse,\n ListResponse,\n Media,\n MediaListResponse,\n MediaResponse,\n MediaTransform,\n Pagination,\n PreviewResponse,\n Problem,\n SearchResponse,\n Selection,\n Session,\n} from './api';\nimport { Abilities, Condition, Id, Option, RouteReference } from './common';\nimport {\n Auth,\n AuthProvider,\n Definition,\n MenuItem,\n Page,\n Uploads,\n User,\n Widget,\n} from './definition';\nimport { BlockType, Field, Rule } from './field';\nimport { LayoutNode } from './layout';\nimport { Column, Filter, ListDefinition } from './list';\nimport { Resource, ResourceFeatures } from './resource';\n\nexport * from './common';\nexport * from './field';\nexport * from './layout';\nexport * from './list';\nexport * from './action';\nexport * from './resource';\nexport * from './definition';\nexport * from './api';\nexport * from './boot';\n\n/** The named schemas of the protocol, as they appear in the generated JSON Schema and OpenAPI files. */\nexport const namedSchemas = {\n Id,\n Abilities,\n RouteReference,\n Condition,\n Option,\n Rule,\n BlockType,\n Field,\n LayoutNode,\n Column,\n Filter,\n ListDefinition,\n ActionScope,\n ActionPlacement,\n ActionConfirm,\n Action,\n ResourceFeatures,\n Resource,\n User,\n AuthProvider,\n Auth,\n MenuItem,\n Page,\n Widget,\n Uploads,\n Definition,\n Item,\n Pagination,\n ItemResponse,\n ListResponse,\n Problem,\n Selection,\n ActionRequest,\n ActionItemResult,\n ActionResult,\n ActionRun,\n ActionRunResponse,\n MediaTransform,\n Media,\n MediaResponse,\n MediaListResponse,\n Session,\n SearchResponse,\n PreviewResponse,\n} satisfies Record<string, z.ZodType>;\n\n/** A registry of the named schemas, used to reference them by name in generated files. */\nexport function createSchemaRegistry() {\n const registry = z.registry<{ id: string }>();\n Object.entries(namedSchemas).forEach(([id, schema]) => registry.add(schema, { id }));\n return registry;\n}\n"],"mappings":";;;;;;;;;;;;AAkDA,IAAa,eAAe;CACxB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;;AAGA,SAAgB,uBAAuB;CACnC,MAAM,WAAW,EAAE,SAAyB;CAC5C,OAAO,QAAQ,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,YAAY,SAAS,IAAI,QAAQ,EAAE,GAAG,CAAC,CAAC;CACnF,OAAO;AACX"}
@@ -0,0 +1,29 @@
1
+ import { z } from 'zod';
2
+ import { Condition } from './common';
3
+ /** Layout node types every Panneau frontend renders. */
4
+ export declare const BUILT_IN_LAYOUT_NODE_TYPES: readonly ["row", "column", "section", "tabs", "tab", "sidebar", "field", "text", "component"];
5
+ export declare const LayoutNode: z.ZodObject<{
6
+ type: z.ZodString;
7
+ name: z.ZodOptional<z.ZodString>;
8
+ label: z.ZodOptional<z.ZodString>;
9
+ description: z.ZodOptional<z.ZodString>;
10
+ text: z.ZodOptional<z.ZodString>;
11
+ component: z.ZodOptional<z.ZodString>;
12
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
13
+ width: z.ZodOptional<z.ZodNumber>;
14
+ collapsible: z.ZodOptional<z.ZodBoolean>;
15
+ collapsed: z.ZodOptional<z.ZodBoolean>;
16
+ visibleWhen: z.ZodOptional<z.ZodObject<{
17
+ field: z.ZodOptional<z.ZodString>;
18
+ equals: z.ZodOptional<z.ZodUnknown>;
19
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
20
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
21
+ filled: z.ZodOptional<z.ZodBoolean>;
22
+ all: z.ZodOptional<z.ZodArray<typeof Condition>>;
23
+ any: z.ZodOptional<z.ZodArray<typeof Condition>>;
24
+ }, z.core.$loose>>;
25
+ children: z.ZodOptional<z.ZodArray<typeof LayoutNode>>;
26
+ }, z.core.$loose>;
27
+ export type BuiltInLayoutNodeType = (typeof BUILT_IN_LAYOUT_NODE_TYPES)[number];
28
+ export type LayoutNode = z.infer<typeof LayoutNode>;
29
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/schemas/layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,wDAAwD;AACxD,eAAO,MAAM,0BAA0B,+FAU7B,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;cA0BC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;iBAO9D,CAAC;AAEP,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Condition } from "./common.js";
2
+ import { z } from "zod";
3
+ //#region src/schemas/layout.ts
4
+ /** Layout node types every Panneau frontend renders. */
5
+ var BUILT_IN_LAYOUT_NODE_TYPES = [
6
+ "row",
7
+ "column",
8
+ "section",
9
+ "tabs",
10
+ "tab",
11
+ "sidebar",
12
+ "field",
13
+ "text",
14
+ "component"
15
+ ];
16
+ var LayoutNode = z.looseObject({
17
+ type: z.string().min(1).meta({ description: "A built-in node type, or a type provided by a plugin." }),
18
+ name: z.string().min(1).optional().meta({ description: "`field`: the name of the field." }),
19
+ label: z.string().optional().meta({ description: "`section`, `tab`: the title." }),
20
+ description: z.string().optional(),
21
+ text: z.string().optional().meta({ description: "`text`: a static paragraph." }),
22
+ component: z.string().optional().meta({ description: "`component`: a component provided by a plugin." }),
23
+ props: z.record(z.string(), z.unknown()).optional(),
24
+ width: z.number().int().min(1).max(12).optional().meta({ description: "Width on a 12-column grid, inside a `row`." }),
25
+ collapsible: z.boolean().optional(),
26
+ collapsed: z.boolean().optional(),
27
+ visibleWhen: Condition.optional(),
28
+ get children() {
29
+ return z.array(LayoutNode).optional();
30
+ }
31
+ }).meta({ description: "A node of a form layout. Containers (`row`, `column`, `section`, `tabs`, `tab`, `sidebar`) have `children`. Fields that no node references are appended at the end of the form." });
32
+ //#endregion
33
+ export { BUILT_IN_LAYOUT_NODE_TYPES, LayoutNode };
34
+
35
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","names":[],"sources":["../../src/schemas/layout.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { Condition } from './common';\n\n/** Layout node types every Panneau frontend renders. */\nexport const BUILT_IN_LAYOUT_NODE_TYPES = [\n 'row',\n 'column',\n 'section',\n 'tabs',\n 'tab',\n 'sidebar',\n 'field',\n 'text',\n 'component',\n] as const;\n\nexport const LayoutNode = z\n .looseObject({\n type: z\n .string()\n .min(1)\n .meta({ description: 'A built-in node type, or a type provided by a plugin.' }),\n name: z.string().min(1).optional().meta({ description: '`field`: the name of the field.' }),\n label: z.string().optional().meta({ description: '`section`, `tab`: the title.' }),\n description: z.string().optional(),\n text: z.string().optional().meta({ description: '`text`: a static paragraph.' }),\n component: z\n .string()\n .optional()\n .meta({ description: '`component`: a component provided by a plugin.' }),\n props: z.record(z.string(), z.unknown()).optional(),\n width: z\n .number()\n .int()\n .min(1)\n .max(12)\n .optional()\n .meta({ description: 'Width on a 12-column grid, inside a `row`.' }),\n collapsible: z.boolean().optional(),\n collapsed: z.boolean().optional(),\n visibleWhen: Condition.optional(),\n // The return type is written out so that declaration files keep the recursion.\n get children(): z.ZodOptional<z.ZodArray<typeof LayoutNode>> {\n return z.array(LayoutNode).optional();\n },\n })\n .meta({\n description:\n 'A node of a form layout. Containers (`row`, `column`, `section`, `tabs`, `tab`, `sidebar`) have `children`. Fields that no node references are appended at the end of the form.',\n });\n\nexport type BuiltInLayoutNodeType = (typeof BUILT_IN_LAYOUT_NODE_TYPES)[number];\nexport type LayoutNode = z.infer<typeof LayoutNode>;\n"],"mappings":";;;;AAKA,IAAa,6BAA6B;CACtC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;AAEA,IAAa,aAAa,EACrB,YAAY;CACT,MAAM,EACD,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,KAAK,EAAE,aAAa,wDAAwD,CAAC;CAClF,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,kCAAkC,CAAC;CAC1F,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,+BAA+B,CAAC;CACjF,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,8BAA8B,CAAC;CAC/E,WAAW,EACN,OAAO,CAAC,CACR,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,iDAAiD,CAAC;CAC3E,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;CAClD,OAAO,EACF,OAAO,CAAC,CACR,IAAI,CAAC,CACL,IAAI,CAAC,CAAC,CACN,IAAI,EAAE,CAAC,CACP,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,6CAA6C,CAAC;CACvE,aAAa,EAAE,QAAQ,CAAC,CAAC,SAAS;CAClC,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,aAAa,UAAU,SAAS;CAEhC,IAAI,WAAyD;EACzD,OAAO,EAAE,MAAM,UAAU,CAAC,CAAC,SAAS;CACxC;AACJ,CAAC,CAAC,CACD,KAAK,EACF,aACI,kLACR,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { z } from 'zod';
2
+ /** List layouts every Panneau frontend renders. Plugins add others. */
3
+ export declare const BUILT_IN_LIST_LAYOUTS: readonly ["table", "cards", "gallery", "calendar"];
4
+ export declare const Column: z.ZodObject<{
5
+ field: z.ZodOptional<z.ZodString>;
6
+ id: z.ZodOptional<z.ZodString>;
7
+ label: z.ZodOptional<z.ZodString>;
8
+ display: z.ZodOptional<z.ZodString>;
9
+ sortable: z.ZodOptional<z.ZodBoolean>;
10
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
11
+ align: z.ZodOptional<z.ZodEnum<{
12
+ start: "start";
13
+ center: "center";
14
+ end: "end";
15
+ }>>;
16
+ }, z.core.$loose>;
17
+ export declare const Filter: z.ZodObject<{
18
+ id: z.ZodString;
19
+ type: z.ZodString;
20
+ label: z.ZodOptional<z.ZodString>;
21
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
22
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
23
+ label: z.ZodString;
24
+ description: z.ZodOptional<z.ZodString>;
25
+ disabled: z.ZodOptional<z.ZodBoolean>;
26
+ }, z.core.$loose>>>;
27
+ resource: z.ZodOptional<z.ZodString>;
28
+ multiple: z.ZodOptional<z.ZodBoolean>;
29
+ default: z.ZodOptional<z.ZodUnknown>;
30
+ }, z.core.$loose>;
31
+ export declare const ListDefinition: z.ZodObject<{
32
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
33
+ field: z.ZodOptional<z.ZodString>;
34
+ id: z.ZodOptional<z.ZodString>;
35
+ label: z.ZodOptional<z.ZodString>;
36
+ display: z.ZodOptional<z.ZodString>;
37
+ sortable: z.ZodOptional<z.ZodBoolean>;
38
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
39
+ align: z.ZodOptional<z.ZodEnum<{
40
+ start: "start";
41
+ center: "center";
42
+ end: "end";
43
+ }>>;
44
+ }, z.core.$loose>>>;
45
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
46
+ id: z.ZodString;
47
+ type: z.ZodString;
48
+ label: z.ZodOptional<z.ZodString>;
49
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
50
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
51
+ label: z.ZodString;
52
+ description: z.ZodOptional<z.ZodString>;
53
+ disabled: z.ZodOptional<z.ZodBoolean>;
54
+ }, z.core.$loose>>>;
55
+ resource: z.ZodOptional<z.ZodString>;
56
+ multiple: z.ZodOptional<z.ZodBoolean>;
57
+ default: z.ZodOptional<z.ZodUnknown>;
58
+ }, z.core.$loose>>>;
59
+ sorts: z.ZodOptional<z.ZodArray<z.ZodString>>;
60
+ defaultSort: z.ZodOptional<z.ZodString>;
61
+ search: z.ZodOptional<z.ZodBoolean>;
62
+ layouts: z.ZodOptional<z.ZodArray<z.ZodString>>;
63
+ perPage: z.ZodOptional<z.ZodNumber>;
64
+ perPageOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
65
+ inlineEdit: z.ZodOptional<z.ZodArray<z.ZodString>>;
66
+ selectable: z.ZodOptional<z.ZodBoolean>;
67
+ }, z.core.$loose>;
68
+ export type BuiltInListLayout = (typeof BUILT_IN_LIST_LAYOUTS)[number];
69
+ export type Column = z.infer<typeof Column>;
70
+ export type Filter = z.infer<typeof Filter>;
71
+ export type ListDefinition = z.infer<typeof ListDefinition>;
72
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/schemas/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,oDAAqD,CAAC;AAExF,eAAO,MAAM,MAAM;;;;;;;;;;;;iBAgBb,CAAC;AAEP,eAAO,MAAM,MAAM;;;;;;;;;;;;;iBAUjB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAoBzB,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AACvE,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAAC;AAC5C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { Option } from "./common.js";
2
+ import { z } from "zod";
3
+ //#region src/schemas/list.ts
4
+ /** List layouts every Panneau frontend renders. Plugins add others. */
5
+ var BUILT_IN_LIST_LAYOUTS = [
6
+ "table",
7
+ "cards",
8
+ "gallery",
9
+ "calendar"
10
+ ];
11
+ var Column = z.looseObject({
12
+ field: z.string().min(1).optional().meta({ description: "The field shown in the column." }),
13
+ id: z.string().min(1).optional().meta({ description: "Id of a column that is not a field." }),
14
+ label: z.string().optional(),
15
+ display: z.string().optional().meta({ description: "How the value is displayed." }),
16
+ sortable: z.boolean().optional(),
17
+ width: z.union([z.number(), z.string()]).optional(),
18
+ align: z.enum([
19
+ "start",
20
+ "center",
21
+ "end"
22
+ ]).optional()
23
+ }).refine((column) => column.field !== void 0 || column.id !== void 0, { message: "A column needs a `field` or an `id`." });
24
+ var Filter = z.looseObject({
25
+ id: z.string().min(1).meta({ description: "Sent as `filter[id]`." }),
26
+ type: z.string().min(1).meta({ description: "Built-in: `text`, `select`, `toggle`, `date`, `date-range`, `relation`." }),
27
+ label: z.string().optional(),
28
+ options: z.array(Option).optional(),
29
+ resource: z.string().optional(),
30
+ multiple: z.boolean().optional(),
31
+ default: z.unknown().optional()
32
+ });
33
+ var ListDefinition = z.looseObject({
34
+ columns: z.array(Column).optional(),
35
+ filters: z.array(Filter).optional(),
36
+ sorts: z.array(z.string().min(1)).optional().meta({ description: "Fields the list can be sorted by." }),
37
+ defaultSort: z.string().optional().meta({ description: "Same format as the `sort` query parameter: `-published_at,title`." }),
38
+ search: z.boolean().optional().meta({ description: "Whether the `q` parameter is supported." }),
39
+ layouts: z.array(z.string().min(1)).optional(),
40
+ perPage: z.number().int().positive().optional(),
41
+ perPageOptions: z.array(z.number().int().positive()).optional(),
42
+ inlineEdit: z.array(z.string().min(1)).optional().meta({ description: "Fields editable in the list." }),
43
+ selectable: z.boolean().optional()
44
+ });
45
+ //#endregion
46
+ export { BUILT_IN_LIST_LAYOUTS, Column, Filter, ListDefinition };
47
+
48
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","names":[],"sources":["../../src/schemas/list.ts"],"sourcesContent":["import { z } from 'zod';\n\nimport { Option } from './common';\n\n/** List layouts every Panneau frontend renders. Plugins add others. */\nexport const BUILT_IN_LIST_LAYOUTS = ['table', 'cards', 'gallery', 'calendar'] as const;\n\nexport const Column = z\n .looseObject({\n field: z.string().min(1).optional().meta({ description: 'The field shown in the column.' }),\n id: z\n .string()\n .min(1)\n .optional()\n .meta({ description: 'Id of a column that is not a field.' }),\n label: z.string().optional(),\n display: z.string().optional().meta({ description: 'How the value is displayed.' }),\n sortable: z.boolean().optional(),\n width: z.union([z.number(), z.string()]).optional(),\n align: z.enum(['start', 'center', 'end']).optional(),\n })\n .refine((column) => column.field !== undefined || column.id !== undefined, {\n message: 'A column needs a `field` or an `id`.',\n });\n\nexport const Filter = z.looseObject({\n id: z.string().min(1).meta({ description: 'Sent as `filter[id]`.' }),\n type: z.string().min(1).meta({\n description: 'Built-in: `text`, `select`, `toggle`, `date`, `date-range`, `relation`.',\n }),\n label: z.string().optional(),\n options: z.array(Option).optional(),\n resource: z.string().optional(),\n multiple: z.boolean().optional(),\n default: z.unknown().optional(),\n});\n\nexport const ListDefinition = z.looseObject({\n columns: z.array(Column).optional(),\n filters: z.array(Filter).optional(),\n sorts: z\n .array(z.string().min(1))\n .optional()\n .meta({ description: 'Fields the list can be sorted by.' }),\n defaultSort: z\n .string()\n .optional()\n .meta({ description: 'Same format as the `sort` query parameter: `-published_at,title`.' }),\n search: z.boolean().optional().meta({ description: 'Whether the `q` parameter is supported.' }),\n layouts: z.array(z.string().min(1)).optional(),\n perPage: z.number().int().positive().optional(),\n perPageOptions: z.array(z.number().int().positive()).optional(),\n inlineEdit: z\n .array(z.string().min(1))\n .optional()\n .meta({ description: 'Fields editable in the list.' }),\n selectable: z.boolean().optional(),\n});\n\nexport type BuiltInListLayout = (typeof BUILT_IN_LIST_LAYOUTS)[number];\nexport type Column = z.infer<typeof Column>;\nexport type Filter = z.infer<typeof Filter>;\nexport type ListDefinition = z.infer<typeof ListDefinition>;\n"],"mappings":";;;;AAKA,IAAa,wBAAwB;CAAC;CAAS;CAAS;CAAW;AAAU;AAE7E,IAAa,SAAS,EACjB,YAAY;CACT,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,iCAAiC,CAAC;CAC1F,IAAI,EACC,OAAO,CAAC,CACR,IAAI,CAAC,CAAC,CACN,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,sCAAsC,CAAC;CAChE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,8BAA8B,CAAC;CAClF,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC/B,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;CAClD,OAAO,EAAE,KAAK;EAAC;EAAS;EAAU;CAAK,CAAC,CAAC,CAAC,SAAS;AACvD,CAAC,CAAC,CACD,QAAQ,WAAW,OAAO,UAAU,KAAA,KAAa,OAAO,OAAO,KAAA,GAAW,EACvE,SAAS,uCACb,CAAC;AAEL,IAAa,SAAS,EAAE,YAAY;CAChC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,aAAa,wBAAwB,CAAC;CACnE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACzB,aAAa,0EACjB,CAAC;CACD,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS;CAC3B,SAAS,EAAE,MAAM,MAAM,CAAC,CAAC,SAAS;CAClC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,UAAU,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC/B,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS;AAClC,CAAC;AAED,IAAa,iBAAiB,EAAE,YAAY;CACxC,SAAS,EAAE,MAAM,MAAM,CAAC,CAAC,SAAS;CAClC,SAAS,EAAE,MAAM,MAAM,CAAC,CAAC,SAAS;CAClC,OAAO,EACF,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxB,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,oCAAoC,CAAC;CAC9D,aAAa,EACR,OAAO,CAAC,CACR,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,oEAAoE,CAAC;CAC9F,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,aAAa,0CAA0C,CAAC;CAC9F,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;CAC7C,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS;CAC9C,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;CAC9D,YAAY,EACP,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACxB,SAAS,CAAC,CACV,KAAK,EAAE,aAAa,+BAA+B,CAAC;CACzD,YAAY,EAAE,QAAQ,CAAC,CAAC,SAAS;AACrC,CAAC"}
@@ -0,0 +1,328 @@
1
+ import { z } from 'zod';
2
+ import { BlockType, Field } from './field';
3
+ import { LayoutNode } from './layout';
4
+ export declare const ResourceFeatures: z.ZodObject<{
5
+ drafts: z.ZodOptional<z.ZodBoolean>;
6
+ revisions: z.ZodOptional<z.ZodBoolean>;
7
+ preview: z.ZodOptional<z.ZodUnion<readonly [z.ZodNull, z.ZodObject<{
8
+ mode: z.ZodEnum<{
9
+ component: "component";
10
+ iframe: "iframe";
11
+ }>;
12
+ component: z.ZodOptional<z.ZodString>;
13
+ }, z.core.$loose>]>>;
14
+ search: z.ZodOptional<z.ZodBoolean>;
15
+ }, z.core.$loose>;
16
+ export declare const Resource: z.ZodObject<{
17
+ id: z.ZodString;
18
+ label: z.ZodObject<{
19
+ singular: z.ZodString;
20
+ plural: z.ZodString;
21
+ }, z.core.$loose>;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ icon: z.ZodOptional<z.ZodString>;
24
+ itemTitle: z.ZodOptional<z.ZodString>;
25
+ fields: z.ZodArray<z.ZodObject<{
26
+ name: z.ZodString;
27
+ type: z.ZodString;
28
+ label: z.ZodOptional<z.ZodString>;
29
+ help: z.ZodOptional<z.ZodString>;
30
+ placeholder: z.ZodOptional<z.ZodString>;
31
+ default: z.ZodOptional<z.ZodUnknown>;
32
+ localized: z.ZodOptional<z.ZodBoolean>;
33
+ readOnly: z.ZodOptional<z.ZodBoolean>;
34
+ createOnly: z.ZodOptional<z.ZodBoolean>;
35
+ updateOnly: z.ZodOptional<z.ZodBoolean>;
36
+ rules: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
37
+ rule: z.ZodLiteral<"required">;
38
+ message: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$loose>, z.ZodObject<{
40
+ rule: z.ZodEnum<{
41
+ min: "min";
42
+ max: "max";
43
+ }>;
44
+ value: z.ZodNumber;
45
+ message: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$loose>, z.ZodObject<{
47
+ rule: z.ZodLiteral<"pattern">;
48
+ value: z.ZodString;
49
+ flags: z.ZodOptional<z.ZodString>;
50
+ message: z.ZodOptional<z.ZodString>;
51
+ }, z.core.$loose>, z.ZodObject<{
52
+ rule: z.ZodEnum<{
53
+ email: "email";
54
+ url: "url";
55
+ }>;
56
+ message: z.ZodOptional<z.ZodString>;
57
+ }, z.core.$loose>, z.ZodObject<{
58
+ rule: z.ZodLiteral<"in">;
59
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
60
+ message: z.ZodOptional<z.ZodString>;
61
+ }, z.core.$loose>, z.ZodObject<{
62
+ rule: z.ZodLiteral<"accept">;
63
+ value: z.ZodArray<z.ZodString>;
64
+ message: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$loose>, z.ZodObject<{
66
+ rule: z.ZodLiteral<"maxSize">;
67
+ value: z.ZodNumber;
68
+ message: z.ZodOptional<z.ZodString>;
69
+ }, z.core.$loose>, z.ZodObject<{
70
+ rule: z.ZodEnum<{
71
+ before: "before";
72
+ after: "after";
73
+ }>;
74
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
75
+ field: z.ZodString;
76
+ }, z.core.$loose>]>;
77
+ message: z.ZodOptional<z.ZodString>;
78
+ }, z.core.$loose>, z.ZodObject<{
79
+ rule: z.ZodString;
80
+ message: z.ZodOptional<z.ZodString>;
81
+ }, z.core.$loose>]>>>;
82
+ visibleWhen: z.ZodOptional<z.ZodObject<{
83
+ field: z.ZodOptional<z.ZodString>;
84
+ equals: z.ZodOptional<z.ZodUnknown>;
85
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
86
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
87
+ filled: z.ZodOptional<z.ZodBoolean>;
88
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
89
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
90
+ }, z.core.$loose>>;
91
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
92
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
93
+ label: z.ZodString;
94
+ description: z.ZodOptional<z.ZodString>;
95
+ disabled: z.ZodOptional<z.ZodBoolean>;
96
+ }, z.core.$loose>>>;
97
+ multiple: z.ZodOptional<z.ZodBoolean>;
98
+ resource: z.ZodOptional<z.ZodString>;
99
+ accept: z.ZodOptional<z.ZodArray<z.ZodString>>;
100
+ from: z.ZodOptional<z.ZodString>;
101
+ display: z.ZodOptional<z.ZodString>;
102
+ fields: z.ZodOptional<z.ZodArray<typeof Field>>;
103
+ types: z.ZodOptional<z.ZodArray<typeof BlockType>>;
104
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
105
+ }, z.core.$loose>>;
106
+ form: z.ZodOptional<z.ZodObject<{
107
+ layout: z.ZodOptional<z.ZodArray<z.ZodObject<{
108
+ type: z.ZodString;
109
+ name: z.ZodOptional<z.ZodString>;
110
+ label: z.ZodOptional<z.ZodString>;
111
+ description: z.ZodOptional<z.ZodString>;
112
+ text: z.ZodOptional<z.ZodString>;
113
+ component: z.ZodOptional<z.ZodString>;
114
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
115
+ width: z.ZodOptional<z.ZodNumber>;
116
+ collapsible: z.ZodOptional<z.ZodBoolean>;
117
+ collapsed: z.ZodOptional<z.ZodBoolean>;
118
+ visibleWhen: z.ZodOptional<z.ZodObject<{
119
+ field: z.ZodOptional<z.ZodString>;
120
+ equals: z.ZodOptional<z.ZodUnknown>;
121
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
122
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
123
+ filled: z.ZodOptional<z.ZodBoolean>;
124
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
125
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
126
+ }, z.core.$loose>>;
127
+ children: z.ZodOptional<z.ZodArray<typeof LayoutNode>>;
128
+ }, z.core.$loose>>>;
129
+ }, z.core.$loose>>;
130
+ list: z.ZodOptional<z.ZodObject<{
131
+ columns: z.ZodOptional<z.ZodArray<z.ZodObject<{
132
+ field: z.ZodOptional<z.ZodString>;
133
+ id: z.ZodOptional<z.ZodString>;
134
+ label: z.ZodOptional<z.ZodString>;
135
+ display: z.ZodOptional<z.ZodString>;
136
+ sortable: z.ZodOptional<z.ZodBoolean>;
137
+ width: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
138
+ align: z.ZodOptional<z.ZodEnum<{
139
+ start: "start";
140
+ center: "center";
141
+ end: "end";
142
+ }>>;
143
+ }, z.core.$loose>>>;
144
+ filters: z.ZodOptional<z.ZodArray<z.ZodObject<{
145
+ id: z.ZodString;
146
+ type: z.ZodString;
147
+ label: z.ZodOptional<z.ZodString>;
148
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
149
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
150
+ label: z.ZodString;
151
+ description: z.ZodOptional<z.ZodString>;
152
+ disabled: z.ZodOptional<z.ZodBoolean>;
153
+ }, z.core.$loose>>>;
154
+ resource: z.ZodOptional<z.ZodString>;
155
+ multiple: z.ZodOptional<z.ZodBoolean>;
156
+ default: z.ZodOptional<z.ZodUnknown>;
157
+ }, z.core.$loose>>>;
158
+ sorts: z.ZodOptional<z.ZodArray<z.ZodString>>;
159
+ defaultSort: z.ZodOptional<z.ZodString>;
160
+ search: z.ZodOptional<z.ZodBoolean>;
161
+ layouts: z.ZodOptional<z.ZodArray<z.ZodString>>;
162
+ perPage: z.ZodOptional<z.ZodNumber>;
163
+ perPageOptions: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
164
+ inlineEdit: z.ZodOptional<z.ZodArray<z.ZodString>>;
165
+ selectable: z.ZodOptional<z.ZodBoolean>;
166
+ }, z.core.$loose>>;
167
+ actions: z.ZodOptional<z.ZodArray<z.ZodObject<{
168
+ id: z.ZodString;
169
+ label: z.ZodString;
170
+ icon: z.ZodOptional<z.ZodString>;
171
+ kind: z.ZodDefault<z.ZodEnum<{
172
+ link: "link";
173
+ server: "server";
174
+ client: "client";
175
+ }>>;
176
+ scope: z.ZodArray<z.ZodEnum<{
177
+ resource: "resource";
178
+ item: "item";
179
+ selection: "selection";
180
+ }>>;
181
+ placement: z.ZodOptional<z.ZodArray<z.ZodEnum<{
182
+ row: "row";
183
+ toolbar: "toolbar";
184
+ form: "form";
185
+ menu: "menu";
186
+ }>>>;
187
+ destructive: z.ZodOptional<z.ZodBoolean>;
188
+ confirm: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
189
+ title: z.ZodOptional<z.ZodString>;
190
+ message: z.ZodOptional<z.ZodString>;
191
+ confirmLabel: z.ZodOptional<z.ZodString>;
192
+ cancelLabel: z.ZodOptional<z.ZodString>;
193
+ }, z.core.$loose>]>>;
194
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
195
+ name: z.ZodString;
196
+ type: z.ZodString;
197
+ label: z.ZodOptional<z.ZodString>;
198
+ help: z.ZodOptional<z.ZodString>;
199
+ placeholder: z.ZodOptional<z.ZodString>;
200
+ default: z.ZodOptional<z.ZodUnknown>;
201
+ localized: z.ZodOptional<z.ZodBoolean>;
202
+ readOnly: z.ZodOptional<z.ZodBoolean>;
203
+ createOnly: z.ZodOptional<z.ZodBoolean>;
204
+ updateOnly: z.ZodOptional<z.ZodBoolean>;
205
+ rules: z.ZodOptional<z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
206
+ rule: z.ZodLiteral<"required">;
207
+ message: z.ZodOptional<z.ZodString>;
208
+ }, z.core.$loose>, z.ZodObject<{
209
+ rule: z.ZodEnum<{
210
+ min: "min";
211
+ max: "max";
212
+ }>;
213
+ value: z.ZodNumber;
214
+ message: z.ZodOptional<z.ZodString>;
215
+ }, z.core.$loose>, z.ZodObject<{
216
+ rule: z.ZodLiteral<"pattern">;
217
+ value: z.ZodString;
218
+ flags: z.ZodOptional<z.ZodString>;
219
+ message: z.ZodOptional<z.ZodString>;
220
+ }, z.core.$loose>, z.ZodObject<{
221
+ rule: z.ZodEnum<{
222
+ email: "email";
223
+ url: "url";
224
+ }>;
225
+ message: z.ZodOptional<z.ZodString>;
226
+ }, z.core.$loose>, z.ZodObject<{
227
+ rule: z.ZodLiteral<"in">;
228
+ value: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
229
+ message: z.ZodOptional<z.ZodString>;
230
+ }, z.core.$loose>, z.ZodObject<{
231
+ rule: z.ZodLiteral<"accept">;
232
+ value: z.ZodArray<z.ZodString>;
233
+ message: z.ZodOptional<z.ZodString>;
234
+ }, z.core.$loose>, z.ZodObject<{
235
+ rule: z.ZodLiteral<"maxSize">;
236
+ value: z.ZodNumber;
237
+ message: z.ZodOptional<z.ZodString>;
238
+ }, z.core.$loose>, z.ZodObject<{
239
+ rule: z.ZodEnum<{
240
+ before: "before";
241
+ after: "after";
242
+ }>;
243
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
244
+ field: z.ZodString;
245
+ }, z.core.$loose>]>;
246
+ message: z.ZodOptional<z.ZodString>;
247
+ }, z.core.$loose>, z.ZodObject<{
248
+ rule: z.ZodString;
249
+ message: z.ZodOptional<z.ZodString>;
250
+ }, z.core.$loose>]>>>;
251
+ visibleWhen: z.ZodOptional<z.ZodObject<{
252
+ field: z.ZodOptional<z.ZodString>;
253
+ equals: z.ZodOptional<z.ZodUnknown>;
254
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
255
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
256
+ filled: z.ZodOptional<z.ZodBoolean>;
257
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
258
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
259
+ }, z.core.$loose>>;
260
+ options: z.ZodOptional<z.ZodArray<z.ZodObject<{
261
+ value: z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodBoolean]>;
262
+ label: z.ZodString;
263
+ description: z.ZodOptional<z.ZodString>;
264
+ disabled: z.ZodOptional<z.ZodBoolean>;
265
+ }, z.core.$loose>>>;
266
+ multiple: z.ZodOptional<z.ZodBoolean>;
267
+ resource: z.ZodOptional<z.ZodString>;
268
+ accept: z.ZodOptional<z.ZodArray<z.ZodString>>;
269
+ from: z.ZodOptional<z.ZodString>;
270
+ display: z.ZodOptional<z.ZodString>;
271
+ fields: z.ZodOptional<z.ZodArray<typeof Field>>;
272
+ types: z.ZodOptional<z.ZodArray<typeof BlockType>>;
273
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
274
+ }, z.core.$loose>>>;
275
+ layout: z.ZodOptional<z.ZodArray<z.ZodObject<{
276
+ type: z.ZodString;
277
+ name: z.ZodOptional<z.ZodString>;
278
+ label: z.ZodOptional<z.ZodString>;
279
+ description: z.ZodOptional<z.ZodString>;
280
+ text: z.ZodOptional<z.ZodString>;
281
+ component: z.ZodOptional<z.ZodString>;
282
+ props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
283
+ width: z.ZodOptional<z.ZodNumber>;
284
+ collapsible: z.ZodOptional<z.ZodBoolean>;
285
+ collapsed: z.ZodOptional<z.ZodBoolean>;
286
+ visibleWhen: z.ZodOptional<z.ZodObject<{
287
+ field: z.ZodOptional<z.ZodString>;
288
+ equals: z.ZodOptional<z.ZodUnknown>;
289
+ in: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
290
+ notIn: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
291
+ filled: z.ZodOptional<z.ZodBoolean>;
292
+ all: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
293
+ any: z.ZodOptional<z.ZodArray<typeof import("./common").Condition>>;
294
+ }, z.core.$loose>>;
295
+ children: z.ZodOptional<z.ZodArray<typeof LayoutNode>>;
296
+ }, z.core.$loose>>>;
297
+ queued: z.ZodOptional<z.ZodBoolean>;
298
+ url: z.ZodOptional<z.ZodString>;
299
+ route: z.ZodOptional<z.ZodString>;
300
+ component: z.ZodOptional<z.ZodString>;
301
+ abilities: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
302
+ }, z.core.$loose>>>;
303
+ abilities: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
304
+ features: z.ZodOptional<z.ZodObject<{
305
+ drafts: z.ZodOptional<z.ZodBoolean>;
306
+ revisions: z.ZodOptional<z.ZodBoolean>;
307
+ preview: z.ZodOptional<z.ZodUnion<readonly [z.ZodNull, z.ZodObject<{
308
+ mode: z.ZodEnum<{
309
+ component: "component";
310
+ iframe: "iframe";
311
+ }>;
312
+ component: z.ZodOptional<z.ZodString>;
313
+ }, z.core.$loose>]>>;
314
+ search: z.ZodOptional<z.ZodBoolean>;
315
+ }, z.core.$loose>>;
316
+ types: z.ZodOptional<z.ZodArray<z.ZodObject<{
317
+ id: z.ZodString;
318
+ label: z.ZodString;
319
+ icon: z.ZodOptional<z.ZodString>;
320
+ fields: z.ZodArray<typeof Field>;
321
+ }, z.core.$loose>>>;
322
+ settings: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
323
+ }, z.core.$loose>;
324
+ export type ResourceFeatures = z.infer<typeof ResourceFeatures>;
325
+ export type Resource = z.infer<typeof Resource>;
326
+ /** A resource as a backend writes it, before defaults are applied. */
327
+ export type ResourceInput = z.input<typeof Resource>;
328
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/schemas/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,eAAO,MAAM,gBAAgB;;;;;;;;;;;iBAmB3B,CAAC;AAEH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsB6C,CAAC;AAEnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAChD,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC"}