@rippling/rippling-sdk 0.2.0-alpha.33 → 0.2.0-alpha.35

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 (284) hide show
  1. package/client.d.mts +8 -2
  2. package/client.d.mts.map +1 -1
  3. package/client.d.ts +8 -2
  4. package/client.d.ts.map +1 -1
  5. package/client.js +17 -0
  6. package/client.js.map +1 -1
  7. package/client.mjs +17 -0
  8. package/client.mjs.map +1 -1
  9. package/internal/types.d.mts +6 -6
  10. package/internal/types.d.mts.map +1 -1
  11. package/internal/types.d.ts +6 -6
  12. package/internal/types.d.ts.map +1 -1
  13. package/lib/manifest/_helpers.d.mts +91 -0
  14. package/lib/manifest/_helpers.d.mts.map +1 -0
  15. package/lib/manifest/_helpers.d.ts +91 -0
  16. package/lib/manifest/_helpers.d.ts.map +1 -0
  17. package/lib/manifest/_helpers.js +65 -0
  18. package/lib/manifest/_helpers.js.map +1 -0
  19. package/lib/manifest/_helpers.mjs +61 -0
  20. package/lib/manifest/_helpers.mjs.map +1 -0
  21. package/lib/manifest/app.d.mts +113 -0
  22. package/lib/manifest/app.d.mts.map +1 -0
  23. package/lib/manifest/app.d.ts +113 -0
  24. package/lib/manifest/app.d.ts.map +1 -0
  25. package/lib/manifest/app.js +95 -0
  26. package/lib/manifest/app.js.map +1 -0
  27. package/lib/manifest/app.mjs +91 -0
  28. package/lib/manifest/app.mjs.map +1 -0
  29. package/lib/manifest/category.d.mts +79 -0
  30. package/lib/manifest/category.d.mts.map +1 -0
  31. package/lib/manifest/category.d.ts +79 -0
  32. package/lib/manifest/category.d.ts.map +1 -0
  33. package/lib/manifest/category.js +72 -0
  34. package/lib/manifest/category.js.map +1 -0
  35. package/lib/manifest/category.mjs +68 -0
  36. package/lib/manifest/category.mjs.map +1 -0
  37. package/lib/manifest/custom-object-field-section.d.mts +71 -0
  38. package/lib/manifest/custom-object-field-section.d.mts.map +1 -0
  39. package/lib/manifest/custom-object-field-section.d.ts +71 -0
  40. package/lib/manifest/custom-object-field-section.d.ts.map +1 -0
  41. package/lib/manifest/custom-object-field-section.js +69 -0
  42. package/lib/manifest/custom-object-field-section.js.map +1 -0
  43. package/lib/manifest/custom-object-field-section.mjs +65 -0
  44. package/lib/manifest/custom-object-field-section.mjs.map +1 -0
  45. package/lib/manifest/custom-object-page-layout.d.mts +318 -0
  46. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -0
  47. package/lib/manifest/custom-object-page-layout.d.ts +318 -0
  48. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -0
  49. package/lib/manifest/custom-object-page-layout.js +158 -0
  50. package/lib/manifest/custom-object-page-layout.js.map +1 -0
  51. package/lib/manifest/custom-object-page-layout.mjs +154 -0
  52. package/lib/manifest/custom-object-page-layout.mjs.map +1 -0
  53. package/lib/manifest/custom-object.d.mts +165 -0
  54. package/lib/manifest/custom-object.d.mts.map +1 -0
  55. package/lib/manifest/custom-object.d.ts +165 -0
  56. package/lib/manifest/custom-object.d.ts.map +1 -0
  57. package/lib/manifest/custom-object.js +254 -0
  58. package/lib/manifest/custom-object.js.map +1 -0
  59. package/lib/manifest/custom-object.mjs +250 -0
  60. package/lib/manifest/custom-object.mjs.map +1 -0
  61. package/lib/manifest/field.d.mts +487 -0
  62. package/lib/manifest/field.d.mts.map +1 -0
  63. package/lib/manifest/field.d.ts +487 -0
  64. package/lib/manifest/field.d.ts.map +1 -0
  65. package/lib/manifest/field.js +461 -0
  66. package/lib/manifest/field.js.map +1 -0
  67. package/lib/manifest/field.mjs +438 -0
  68. package/lib/manifest/field.mjs.map +1 -0
  69. package/lib/manifest/index.d.mts +15 -0
  70. package/lib/manifest/index.d.mts.map +1 -0
  71. package/lib/manifest/index.d.ts +15 -0
  72. package/lib/manifest/index.d.ts.map +1 -0
  73. package/lib/manifest/index.js +53 -0
  74. package/lib/manifest/index.js.map +1 -0
  75. package/lib/manifest/index.mjs +18 -0
  76. package/lib/manifest/index.mjs.map +1 -0
  77. package/lib/manifest/list-view.d.mts +138 -0
  78. package/lib/manifest/list-view.d.mts.map +1 -0
  79. package/lib/manifest/list-view.d.ts +138 -0
  80. package/lib/manifest/list-view.d.ts.map +1 -0
  81. package/lib/manifest/list-view.js +109 -0
  82. package/lib/manifest/list-view.js.map +1 -0
  83. package/lib/manifest/list-view.mjs +105 -0
  84. package/lib/manifest/list-view.mjs.map +1 -0
  85. package/lib/manifest/manifest-builder.d.mts +110 -0
  86. package/lib/manifest/manifest-builder.d.mts.map +1 -0
  87. package/lib/manifest/manifest-builder.d.ts +110 -0
  88. package/lib/manifest/manifest-builder.d.ts.map +1 -0
  89. package/lib/manifest/manifest-builder.js +91 -0
  90. package/lib/manifest/manifest-builder.js.map +1 -0
  91. package/lib/manifest/manifest-builder.mjs +87 -0
  92. package/lib/manifest/manifest-builder.mjs.map +1 -0
  93. package/lib/manifest/manifest-function.d.mts +119 -0
  94. package/lib/manifest/manifest-function.d.mts.map +1 -0
  95. package/lib/manifest/manifest-function.d.ts +119 -0
  96. package/lib/manifest/manifest-function.d.ts.map +1 -0
  97. package/lib/manifest/manifest-function.js +85 -0
  98. package/lib/manifest/manifest-function.js.map +1 -0
  99. package/lib/manifest/manifest-function.mjs +81 -0
  100. package/lib/manifest/manifest-function.mjs.map +1 -0
  101. package/lib/manifest/rule.d.mts +128 -0
  102. package/lib/manifest/rule.d.mts.map +1 -0
  103. package/lib/manifest/rule.d.ts +128 -0
  104. package/lib/manifest/rule.d.ts.map +1 -0
  105. package/lib/manifest/rule.js +105 -0
  106. package/lib/manifest/rule.js.map +1 -0
  107. package/lib/manifest/rule.mjs +101 -0
  108. package/lib/manifest/rule.mjs.map +1 -0
  109. package/lib/manifest/sdui-page.d.mts +89 -0
  110. package/lib/manifest/sdui-page.d.mts.map +1 -0
  111. package/lib/manifest/sdui-page.d.ts +89 -0
  112. package/lib/manifest/sdui-page.d.ts.map +1 -0
  113. package/lib/manifest/sdui-page.js +83 -0
  114. package/lib/manifest/sdui-page.js.map +1 -0
  115. package/lib/manifest/sdui-page.mjs +79 -0
  116. package/lib/manifest/sdui-page.mjs.map +1 -0
  117. package/lib/manifest/validation.d.mts +116 -0
  118. package/lib/manifest/validation.d.mts.map +1 -0
  119. package/lib/manifest/validation.d.ts +116 -0
  120. package/lib/manifest/validation.d.ts.map +1 -0
  121. package/lib/manifest/validation.js +83 -0
  122. package/lib/manifest/validation.js.map +1 -0
  123. package/lib/manifest/validation.mjs +79 -0
  124. package/lib/manifest/validation.mjs.map +1 -0
  125. package/lib/sdui/actions.d.mts +25 -0
  126. package/lib/sdui/actions.d.mts.map +1 -0
  127. package/lib/sdui/actions.d.ts +25 -0
  128. package/lib/sdui/actions.d.ts.map +1 -0
  129. package/lib/sdui/actions.js +53 -0
  130. package/lib/sdui/actions.js.map +1 -0
  131. package/lib/sdui/actions.mjs +42 -0
  132. package/lib/sdui/actions.mjs.map +1 -0
  133. package/lib/sdui/component.d.mts +41 -0
  134. package/lib/sdui/component.d.mts.map +1 -0
  135. package/lib/sdui/component.d.ts +41 -0
  136. package/lib/sdui/component.d.ts.map +1 -0
  137. package/lib/sdui/component.js +95 -0
  138. package/lib/sdui/component.js.map +1 -0
  139. package/lib/sdui/component.mjs +91 -0
  140. package/lib/sdui/component.mjs.map +1 -0
  141. package/lib/sdui/components.d.mts +149 -0
  142. package/lib/sdui/components.d.mts.map +1 -0
  143. package/lib/sdui/components.d.ts +149 -0
  144. package/lib/sdui/components.d.ts.map +1 -0
  145. package/lib/sdui/components.js +303 -0
  146. package/lib/sdui/components.js.map +1 -0
  147. package/lib/sdui/components.mjs +298 -0
  148. package/lib/sdui/components.mjs.map +1 -0
  149. package/lib/sdui/conditions.d.mts +25 -0
  150. package/lib/sdui/conditions.d.mts.map +1 -0
  151. package/lib/sdui/conditions.d.ts +25 -0
  152. package/lib/sdui/conditions.d.ts.map +1 -0
  153. package/lib/sdui/conditions.js +47 -0
  154. package/lib/sdui/conditions.js.map +1 -0
  155. package/lib/sdui/conditions.mjs +35 -0
  156. package/lib/sdui/conditions.mjs.map +1 -0
  157. package/lib/sdui/directives.d.mts +18 -0
  158. package/lib/sdui/directives.d.mts.map +1 -0
  159. package/lib/sdui/directives.d.ts +18 -0
  160. package/lib/sdui/directives.d.ts.map +1 -0
  161. package/lib/sdui/directives.js +28 -0
  162. package/lib/sdui/directives.js.map +1 -0
  163. package/lib/sdui/directives.mjs +21 -0
  164. package/lib/sdui/directives.mjs.map +1 -0
  165. package/lib/sdui/index.d.mts +362 -0
  166. package/lib/sdui/index.d.mts.map +1 -0
  167. package/lib/sdui/index.d.ts +362 -0
  168. package/lib/sdui/index.d.ts.map +1 -0
  169. package/lib/sdui/index.js +375 -0
  170. package/lib/sdui/index.js.map +1 -0
  171. package/lib/sdui/index.mjs +199 -0
  172. package/lib/sdui/index.mjs.map +1 -0
  173. package/lib/sdui/props.d.mts +12 -0
  174. package/lib/sdui/props.d.mts.map +1 -0
  175. package/lib/sdui/props.d.ts +12 -0
  176. package/lib/sdui/props.d.ts.map +1 -0
  177. package/lib/sdui/props.js +25 -0
  178. package/lib/sdui/props.js.map +1 -0
  179. package/lib/sdui/props.mjs +21 -0
  180. package/lib/sdui/props.mjs.map +1 -0
  181. package/lib/sdui/render.d.mts +23 -0
  182. package/lib/sdui/render.d.mts.map +1 -0
  183. package/lib/sdui/render.d.ts +23 -0
  184. package/lib/sdui/render.d.ts.map +1 -0
  185. package/lib/sdui/render.js +40 -0
  186. package/lib/sdui/render.js.map +1 -0
  187. package/lib/sdui/render.mjs +37 -0
  188. package/lib/sdui/render.mjs.map +1 -0
  189. package/lib/sdui/state.d.mts +22 -0
  190. package/lib/sdui/state.d.mts.map +1 -0
  191. package/lib/sdui/state.d.ts +22 -0
  192. package/lib/sdui/state.d.ts.map +1 -0
  193. package/lib/sdui/state.js +57 -0
  194. package/lib/sdui/state.js.map +1 -0
  195. package/lib/sdui/state.mjs +53 -0
  196. package/lib/sdui/state.mjs.map +1 -0
  197. package/package.json +11 -1
  198. package/resources/draft-hires.d.mts +26 -0
  199. package/resources/draft-hires.d.mts.map +1 -1
  200. package/resources/draft-hires.d.ts +26 -0
  201. package/resources/draft-hires.d.ts.map +1 -1
  202. package/resources/earnings-inputs.d.mts +99 -1
  203. package/resources/earnings-inputs.d.mts.map +1 -1
  204. package/resources/earnings-inputs.d.ts +99 -1
  205. package/resources/earnings-inputs.d.ts.map +1 -1
  206. package/resources/earnings-inputs.js +6 -0
  207. package/resources/earnings-inputs.js.map +1 -1
  208. package/resources/earnings-inputs.mjs +6 -0
  209. package/resources/earnings-inputs.mjs.map +1 -1
  210. package/resources/files.d.mts +164 -0
  211. package/resources/files.d.mts.map +1 -0
  212. package/resources/files.d.ts +164 -0
  213. package/resources/files.d.ts.map +1 -0
  214. package/resources/files.js +25 -0
  215. package/resources/files.js.map +1 -0
  216. package/resources/files.mjs +21 -0
  217. package/resources/files.mjs.map +1 -0
  218. package/resources/headcount-positions.d.mts +2 -2
  219. package/resources/headcount-positions.d.mts.map +1 -1
  220. package/resources/headcount-positions.d.ts +2 -2
  221. package/resources/headcount-positions.d.ts.map +1 -1
  222. package/resources/index.d.mts +2 -1
  223. package/resources/index.d.mts.map +1 -1
  224. package/resources/index.d.ts +2 -1
  225. package/resources/index.d.ts.map +1 -1
  226. package/resources/index.js +4 -2
  227. package/resources/index.js.map +1 -1
  228. package/resources/index.mjs +1 -0
  229. package/resources/index.mjs.map +1 -1
  230. package/resources/legal-entities.d.mts +1 -1
  231. package/resources/legal-entities.d.mts.map +1 -1
  232. package/resources/legal-entities.d.ts +1 -1
  233. package/resources/legal-entities.d.ts.map +1 -1
  234. package/resources/location-factors.d.mts +2 -2
  235. package/resources/location-factors.d.mts.map +1 -1
  236. package/resources/location-factors.d.ts +2 -2
  237. package/resources/location-factors.d.ts.map +1 -1
  238. package/resources/shared.d.mts +1 -1
  239. package/resources/shared.d.mts.map +1 -1
  240. package/resources/shared.d.ts +1 -1
  241. package/resources/shared.d.ts.map +1 -1
  242. package/resources/workers.d.mts +2 -2
  243. package/resources/workers.d.mts.map +1 -1
  244. package/resources/workers.d.ts +2 -2
  245. package/resources/workers.d.ts.map +1 -1
  246. package/src/client.ts +29 -0
  247. package/src/internal/types.ts +6 -8
  248. package/src/lib/manifest/_helpers.ts +164 -0
  249. package/src/lib/manifest/app.ts +163 -0
  250. package/src/lib/manifest/category.ts +100 -0
  251. package/src/lib/manifest/custom-object-field-section.ts +93 -0
  252. package/src/lib/manifest/custom-object-page-layout.ts +427 -0
  253. package/src/lib/manifest/custom-object.ts +360 -0
  254. package/src/lib/manifest/field.ts +822 -0
  255. package/src/lib/manifest/index.ts +114 -0
  256. package/src/lib/manifest/list-view.ts +183 -0
  257. package/src/lib/manifest/manifest-builder.ts +140 -0
  258. package/src/lib/manifest/manifest-function.ts +151 -0
  259. package/src/lib/manifest/rule.ts +191 -0
  260. package/src/lib/manifest/sdui-page.ts +118 -0
  261. package/src/lib/manifest/validation.ts +150 -0
  262. package/src/lib/sdui/actions.ts +58 -0
  263. package/src/lib/sdui/component.ts +122 -0
  264. package/src/lib/sdui/components.ts +308 -0
  265. package/src/lib/sdui/conditions.ts +59 -0
  266. package/src/lib/sdui/directives.ts +42 -0
  267. package/src/lib/sdui/index.ts +365 -0
  268. package/src/lib/sdui/props.ts +32 -0
  269. package/src/lib/sdui/render.ts +58 -0
  270. package/src/lib/sdui/state.ts +60 -0
  271. package/src/resources/draft-hires.ts +31 -0
  272. package/src/resources/earnings-inputs.ts +127 -0
  273. package/src/resources/files.ts +203 -0
  274. package/src/resources/headcount-positions.ts +2 -0
  275. package/src/resources/index.ts +3 -0
  276. package/src/resources/legal-entities.ts +1 -0
  277. package/src/resources/location-factors.ts +2 -0
  278. package/src/resources/shared.ts +1 -0
  279. package/src/resources/workers.ts +2 -0
  280. package/src/version.ts +1 -1
  281. package/version.d.mts +1 -1
  282. package/version.d.ts +1 -1
  283. package/version.js +1 -1
  284. package/version.mjs +1 -1
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Defines a category and registers it with the manifest.
3
+ *
4
+ * A category is the navigation grouping that organizes related custom objects
5
+ * in the Rippling sidebar. You would normally define one category per domain,
6
+ * then pass it (or its api_name string) to each {@link CustomObject} in that domain.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const manifest = new ManifestBuilder({
11
+ * key: 'gym_membership_management',
12
+ * name: 'Gym Membership Management',
13
+ * });
14
+ *
15
+ * const gymCategory = new Category(manifest, {
16
+ * apiName: 'gym__c',
17
+ * name: 'Gym',
18
+ * description: 'Memberships, staff, schedules, and attendance',
19
+ * });
20
+ *
21
+ * // Pass the instance to any CustomObject in this domain:
22
+ * const memberObj = new CustomObject(manifest, {
23
+ * apiName: 'gym_member__c',
24
+ * name: 'Member',
25
+ * category: gymCategory,
26
+ * });
27
+ * ```
28
+ *
29
+ * @see {@link CustomObject} — references this category via instance or api_name string.
30
+ */
31
+ export class Category {
32
+ /**
33
+ * @param scope - The manifest to register this category with.
34
+ * @param props - Initialization properties.
35
+ */
36
+ constructor(scope, props) {
37
+ this._apiName = props.apiName;
38
+ this._name = props.name;
39
+ this._description = props.description ?? null;
40
+ scope._register(this);
41
+ }
42
+ /**
43
+ * Returns the api_name of this category (e.g. `'gym__c'`).
44
+ */
45
+ getApiName() {
46
+ return this._apiName;
47
+ }
48
+ /**
49
+ * Returns the display name of this category (e.g. `'Gym'`).
50
+ */
51
+ getName() {
52
+ return this._name;
53
+ }
54
+ /**
55
+ * Serializes this category to the wire format consumed by the manifest install endpoint.
56
+ *
57
+ * @returns A plain object with `type: 'CUSTOM_CATEGORY'` and all configured fields.
58
+ */
59
+ toDict() {
60
+ return {
61
+ type: 'CUSTOM_CATEGORY',
62
+ api_name: this._apiName,
63
+ name: this._name,
64
+ description: this._description ?? null,
65
+ };
66
+ }
67
+ }
68
+ //# sourceMappingURL=category.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"category.mjs","sourceRoot":"","sources":["../../src/lib/manifest/category.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,QAAQ;IAKnB;;;OAGG;IACH,YAAY,KAAoB,EAAE,KAAoB;QACpD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC;QAC9C,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,WAAW,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;SACvC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,71 @@
1
+ import type { CustomObject } from "./custom-object.mjs";
2
+ /**
3
+ * Initialization properties for {@link CustomObjectFieldSection}.
4
+ */
5
+ export interface CustomObjectFieldSectionProps {
6
+ /**
7
+ * Display name of the section shown as a group header on the detail page
8
+ * (e.g. `'Profile'`, `'Membership'`).
9
+ *
10
+ * Required.
11
+ */
12
+ name: string;
13
+ /**
14
+ * Stable identifier for this section. Pass a human-readable slug
15
+ * (e.g. `'sec_gm_profile'`) to keep it stable across manifest regenerations.
16
+ *
17
+ * Optional. Auto-generated when omitted. @default generateId('sec')
18
+ */
19
+ sectionId?: string;
20
+ }
21
+ /**
22
+ * Defines a field section and registers it with the manifest.
23
+ *
24
+ * A field section is a named group of fields displayed together on a custom
25
+ * object's detail page. After creating a section, pass it as the `section`
26
+ * prop on any field that should belong to it.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const profileSection = new CustomObjectFieldSection(memberObj, {
31
+ * name: 'Profile',
32
+ * sectionId: 'sec_gm_profile',
33
+ * });
34
+ *
35
+ * const firstName = new TextField(memberObj, {
36
+ * apiName: 'first_name__c',
37
+ * displayName: 'First name',
38
+ * section: profileSection,
39
+ * });
40
+ * ```
41
+ *
42
+ * @see {@link CustomObjectPageLayout} — controls which sections appear on which tab.
43
+ */
44
+ export declare class CustomObjectFieldSection {
45
+ private readonly _sectionId;
46
+ private readonly _name;
47
+ private readonly _model;
48
+ /**
49
+ * @param customObject - The custom object this section belongs to.
50
+ * @param props - Initialization properties.
51
+ */
52
+ constructor(customObject: CustomObject, props: CustomObjectFieldSectionProps);
53
+ /**
54
+ * Returns the stable identifier for this section (e.g. `'sec_gm_profile'`).
55
+ *
56
+ * Use this value in page layout field entries via `getSectionId()`, or pass
57
+ * the section instance directly to field `section` props.
58
+ */
59
+ getSectionId(): string;
60
+ /**
61
+ * Returns the api_name of the custom object this section belongs to.
62
+ */
63
+ getModelApiName(): string;
64
+ /**
65
+ * Serializes this section to the wire format consumed by the manifest install endpoint.
66
+ *
67
+ * @returns A plain object with `type: 'CUSTOM_OBJECT_FIELD_SECTION'`.
68
+ */
69
+ toDict(): Record<string, any>;
70
+ }
71
+ //# sourceMappingURL=custom-object-field-section.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object-field-section.d.mts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-field-section.ts"],"names":[],"mappings":"OACO,KAAK,EAAE,YAAY,EAAE;AAE5B;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC;;;OAGG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,6BAA6B;IAO5E;;;;;OAKG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAQ9B"}
@@ -0,0 +1,71 @@
1
+ import type { CustomObject } from "./custom-object.js";
2
+ /**
3
+ * Initialization properties for {@link CustomObjectFieldSection}.
4
+ */
5
+ export interface CustomObjectFieldSectionProps {
6
+ /**
7
+ * Display name of the section shown as a group header on the detail page
8
+ * (e.g. `'Profile'`, `'Membership'`).
9
+ *
10
+ * Required.
11
+ */
12
+ name: string;
13
+ /**
14
+ * Stable identifier for this section. Pass a human-readable slug
15
+ * (e.g. `'sec_gm_profile'`) to keep it stable across manifest regenerations.
16
+ *
17
+ * Optional. Auto-generated when omitted. @default generateId('sec')
18
+ */
19
+ sectionId?: string;
20
+ }
21
+ /**
22
+ * Defines a field section and registers it with the manifest.
23
+ *
24
+ * A field section is a named group of fields displayed together on a custom
25
+ * object's detail page. After creating a section, pass it as the `section`
26
+ * prop on any field that should belong to it.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * const profileSection = new CustomObjectFieldSection(memberObj, {
31
+ * name: 'Profile',
32
+ * sectionId: 'sec_gm_profile',
33
+ * });
34
+ *
35
+ * const firstName = new TextField(memberObj, {
36
+ * apiName: 'first_name__c',
37
+ * displayName: 'First name',
38
+ * section: profileSection,
39
+ * });
40
+ * ```
41
+ *
42
+ * @see {@link CustomObjectPageLayout} — controls which sections appear on which tab.
43
+ */
44
+ export declare class CustomObjectFieldSection {
45
+ private readonly _sectionId;
46
+ private readonly _name;
47
+ private readonly _model;
48
+ /**
49
+ * @param customObject - The custom object this section belongs to.
50
+ * @param props - Initialization properties.
51
+ */
52
+ constructor(customObject: CustomObject, props: CustomObjectFieldSectionProps);
53
+ /**
54
+ * Returns the stable identifier for this section (e.g. `'sec_gm_profile'`).
55
+ *
56
+ * Use this value in page layout field entries via `getSectionId()`, or pass
57
+ * the section instance directly to field `section` props.
58
+ */
59
+ getSectionId(): string;
60
+ /**
61
+ * Returns the api_name of the custom object this section belongs to.
62
+ */
63
+ getModelApiName(): string;
64
+ /**
65
+ * Serializes this section to the wire format consumed by the manifest install endpoint.
66
+ *
67
+ * @returns A plain object with `type: 'CUSTOM_OBJECT_FIELD_SECTION'`.
68
+ */
69
+ toDict(): Record<string, any>;
70
+ }
71
+ //# sourceMappingURL=custom-object-field-section.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object-field-section.d.ts","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-field-section.ts"],"names":[],"mappings":"OACO,KAAK,EAAE,YAAY,EAAE;AAE5B;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IAEtC;;;OAGG;gBACS,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,6BAA6B;IAO5E;;;;;OAKG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAQ9B"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CustomObjectFieldSection = void 0;
4
+ const _helpers_1 = require("./_helpers.js");
5
+ /**
6
+ * Defines a field section and registers it with the manifest.
7
+ *
8
+ * A field section is a named group of fields displayed together on a custom
9
+ * object's detail page. After creating a section, pass it as the `section`
10
+ * prop on any field that should belong to it.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const profileSection = new CustomObjectFieldSection(memberObj, {
15
+ * name: 'Profile',
16
+ * sectionId: 'sec_gm_profile',
17
+ * });
18
+ *
19
+ * const firstName = new TextField(memberObj, {
20
+ * apiName: 'first_name__c',
21
+ * displayName: 'First name',
22
+ * section: profileSection,
23
+ * });
24
+ * ```
25
+ *
26
+ * @see {@link CustomObjectPageLayout} — controls which sections appear on which tab.
27
+ */
28
+ class CustomObjectFieldSection {
29
+ /**
30
+ * @param customObject - The custom object this section belongs to.
31
+ * @param props - Initialization properties.
32
+ */
33
+ constructor(customObject, props) {
34
+ this._sectionId = props.sectionId ?? (0, _helpers_1.generateId)('sec');
35
+ this._name = props.name;
36
+ this._model = customObject;
37
+ customObject._register(this);
38
+ }
39
+ /**
40
+ * Returns the stable identifier for this section (e.g. `'sec_gm_profile'`).
41
+ *
42
+ * Use this value in page layout field entries via `getSectionId()`, or pass
43
+ * the section instance directly to field `section` props.
44
+ */
45
+ getSectionId() {
46
+ return this._sectionId;
47
+ }
48
+ /**
49
+ * Returns the api_name of the custom object this section belongs to.
50
+ */
51
+ getModelApiName() {
52
+ return this._model.getApiName();
53
+ }
54
+ /**
55
+ * Serializes this section to the wire format consumed by the manifest install endpoint.
56
+ *
57
+ * @returns A plain object with `type: 'CUSTOM_OBJECT_FIELD_SECTION'`.
58
+ */
59
+ toDict() {
60
+ return {
61
+ type: 'CUSTOM_OBJECT_FIELD_SECTION',
62
+ section_id: this._sectionId,
63
+ model_name: this._model.getApiName(),
64
+ name: this._name,
65
+ };
66
+ }
67
+ }
68
+ exports.CustomObjectFieldSection = CustomObjectFieldSection;
69
+ //# sourceMappingURL=custom-object-field-section.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object-field-section.js","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-field-section.ts"],"names":[],"mappings":";;;AAAA,4CAAwC;AAuBxC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,wBAAwB;IAKnC;;;OAGG;IACH,YAAY,YAA0B,EAAE,KAAoC;QAC1E,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACpC,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC;IACJ,CAAC;CACF;AA9CD,4DA8CC"}
@@ -0,0 +1,65 @@
1
+ import { generateId } from "./_helpers.mjs";
2
+ /**
3
+ * Defines a field section and registers it with the manifest.
4
+ *
5
+ * A field section is a named group of fields displayed together on a custom
6
+ * object's detail page. After creating a section, pass it as the `section`
7
+ * prop on any field that should belong to it.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * const profileSection = new CustomObjectFieldSection(memberObj, {
12
+ * name: 'Profile',
13
+ * sectionId: 'sec_gm_profile',
14
+ * });
15
+ *
16
+ * const firstName = new TextField(memberObj, {
17
+ * apiName: 'first_name__c',
18
+ * displayName: 'First name',
19
+ * section: profileSection,
20
+ * });
21
+ * ```
22
+ *
23
+ * @see {@link CustomObjectPageLayout} — controls which sections appear on which tab.
24
+ */
25
+ export class CustomObjectFieldSection {
26
+ /**
27
+ * @param customObject - The custom object this section belongs to.
28
+ * @param props - Initialization properties.
29
+ */
30
+ constructor(customObject, props) {
31
+ this._sectionId = props.sectionId ?? generateId('sec');
32
+ this._name = props.name;
33
+ this._model = customObject;
34
+ customObject._register(this);
35
+ }
36
+ /**
37
+ * Returns the stable identifier for this section (e.g. `'sec_gm_profile'`).
38
+ *
39
+ * Use this value in page layout field entries via `getSectionId()`, or pass
40
+ * the section instance directly to field `section` props.
41
+ */
42
+ getSectionId() {
43
+ return this._sectionId;
44
+ }
45
+ /**
46
+ * Returns the api_name of the custom object this section belongs to.
47
+ */
48
+ getModelApiName() {
49
+ return this._model.getApiName();
50
+ }
51
+ /**
52
+ * Serializes this section to the wire format consumed by the manifest install endpoint.
53
+ *
54
+ * @returns A plain object with `type: 'CUSTOM_OBJECT_FIELD_SECTION'`.
55
+ */
56
+ toDict() {
57
+ return {
58
+ type: 'CUSTOM_OBJECT_FIELD_SECTION',
59
+ section_id: this._sectionId,
60
+ model_name: this._model.getApiName(),
61
+ name: this._name,
62
+ };
63
+ }
64
+ }
65
+ //# sourceMappingURL=custom-object-field-section.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-object-field-section.mjs","sourceRoot":"","sources":["../../src/lib/manifest/custom-object-field-section.ts"],"names":[],"mappings":"OAAO,EAAE,UAAU,EAAE;AAuBrB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,OAAO,wBAAwB;IAKnC;;;OAGG;IACH,YAAY,YAA0B,EAAE,KAAoC;QAC1E,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAC3B,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACH,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,6BAA6B;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;YACpC,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,318 @@
1
+ import type { CustomObject } from "./custom-object.mjs";
2
+ import type { Field } from "./field.mjs";
3
+ /** Edit to a built-in (system) header field. */
4
+ export interface SystemHeaderFieldEdit {
5
+ /** Replace the system field's RQL field reference. Optional. */
6
+ newRqlField?: string;
7
+ /** Remove this system field from the header. Optional. */
8
+ deleted?: boolean;
9
+ }
10
+ /**
11
+ * Custom header field added via `newFields`.
12
+ *
13
+ * `key` is required and must be non-empty — it is used as the stable identity
14
+ * for this field in `headerFieldsOrder` and visibility conditions.
15
+ */
16
+ export interface NewHeaderField {
17
+ /** RQL field name to display. Required. */
18
+ rqlName: string;
19
+ /** Stable key for this field. Required. */
20
+ key: string;
21
+ /** Whether the user can remove this field. Optional. */
22
+ canBeDeleted?: boolean;
23
+ /** Whether the user can swap this field for another. Optional. */
24
+ canBeChanged?: boolean;
25
+ /** Whether the user can reorder this field. Optional. */
26
+ canBeMoved?: boolean;
27
+ }
28
+ /**
29
+ * Header configuration for a page layout (`header_edits`).
30
+ *
31
+ * Only the keys listed here are accepted — anything else is silently dropped
32
+ * on the wire. Pass `{}` for an unchanged header.
33
+ *
34
+ * > **Caution:** key names are camelCase on the wire. Snake_case keys are
35
+ * > silently dropped and produce an empty header on deploy.
36
+ */
37
+ export interface HeaderEdits {
38
+ /** Replace the record title field (pass the field's api_name). Optional. */
39
+ newTitleField?: string | null;
40
+ /** Remove the title field from the header. Optional. */
41
+ titleFieldDeleted?: boolean;
42
+ /** Replace the record description field. Optional. */
43
+ newDescriptionField?: string | null;
44
+ /** Remove the description field from the header. Optional. */
45
+ descriptionFieldDeleted?: boolean;
46
+ /** Edits to built-in system header fields, keyed by system field key. Optional. */
47
+ systemFieldEdits?: Record<string, SystemHeaderFieldEdit>;
48
+ /** Additional custom fields to add to the header. Optional. */
49
+ newFields?: NewHeaderField[];
50
+ /** Ordered list of header field `key` values (custom + system). Optional. */
51
+ headerFieldsOrder?: string[];
52
+ /** Action button keys to show in the header. Optional. */
53
+ buttons?: string[];
54
+ }
55
+ /** One field entry inside a `fields_section`. */
56
+ export interface SectionField {
57
+ /** RQL name of the field to display. Required. */
58
+ fieldRqlName: string;
59
+ /** Hide this field from view. Optional. */
60
+ hidden?: boolean;
61
+ /** Allow inline editing of this field. Optional. */
62
+ editable?: boolean;
63
+ /** Controls how the field can be moved in the UI. Optional. */
64
+ movementOption?: 'tab' | 'free';
65
+ }
66
+ /** A standard field-grid section inside a tab. */
67
+ export interface FieldsSection {
68
+ type: 'fields_section';
69
+ /** Stable key for this section. Required. */
70
+ key: string;
71
+ /** Display name of the section. Required. */
72
+ name: string;
73
+ /** Fields to display in this section. Required. */
74
+ fields: SectionField[];
75
+ }
76
+ /**
77
+ * A section inside a page layout tab.
78
+ *
79
+ * Only `fields_section` is modeled today. Add other section types
80
+ * (`related_object_section`, `custom_section`, …) explicitly as needed.
81
+ */
82
+ export type PageLayoutSection = FieldsSection;
83
+ /** A tab that contains one or more field-grid sections. */
84
+ export interface TabWithSections {
85
+ type: 'tab_with_sections';
86
+ /** Stable key for this tab. Required. */
87
+ key: string;
88
+ /** Display name of the tab. Required. */
89
+ name: string;
90
+ /** Sections inside this tab. Required. */
91
+ sections: PageLayoutSection[];
92
+ }
93
+ /** A tab that hosts a custom UI component. */
94
+ export interface CustomTab {
95
+ type: 'custom_tab';
96
+ /** Stable key for this tab. Required. */
97
+ key: string;
98
+ /** Display name of the tab. Required. */
99
+ name: string;
100
+ /** Key of the custom component to render. Required. */
101
+ componentKey: string;
102
+ }
103
+ /** A tab entry in a page layout — either a sections-based tab or a custom component tab. */
104
+ export type PageLayoutTab = TabWithSections | CustomTab;
105
+ /** Column layout for a `fields_section`. */
106
+ export type SectionFieldsLayout = 'one_column' | 'two_column' | 'three_column' | 'responsive';
107
+ /** Edits to a built-in section inside a system tab. */
108
+ export interface SystemSectionEdit {
109
+ /** Rename this section. Optional. */
110
+ newName?: string;
111
+ /** Remove this section. Optional. */
112
+ deleted?: boolean;
113
+ /** Change the column layout. Optional. */
114
+ newLayout?: SectionFieldsLayout;
115
+ /** Add fields to this section. Optional. */
116
+ newFields?: SectionField[];
117
+ /** Hide the section name header. Optional. */
118
+ newHideName?: boolean;
119
+ }
120
+ /** Edits to a built-in (system) tab. */
121
+ export interface SystemTabEdit {
122
+ /** Rename this tab. Optional. */
123
+ newName?: string;
124
+ /** Remove this tab. Optional. */
125
+ deleted?: boolean;
126
+ /** Add new sections to this tab. Optional. */
127
+ newSections?: PageLayoutSection[];
128
+ /** Edits to built-in sections inside this tab, keyed by section key. Optional. */
129
+ systemSectionEdits?: Record<string, SystemSectionEdit>;
130
+ /** Reorder sections by key. Optional. */
131
+ sectionsOrder?: string[];
132
+ }
133
+ /**
134
+ * Tab structure configuration for a page layout (`tab_edits`).
135
+ *
136
+ * All fields are optional. An omitted `tabEdits` defaults to `{}`.
137
+ *
138
+ * > **Caution:** key names are camelCase on the wire. Snake_case keys are
139
+ * > silently dropped and produce an empty layout on deploy.
140
+ */
141
+ export interface TabEdits {
142
+ /** New tabs to add to this layout. Each must include a `type` discriminator. Optional. */
143
+ newTabs?: PageLayoutTab[];
144
+ /** Edits to existing system tabs, keyed by tab key. Optional. */
145
+ systemTabEdits?: Record<string, SystemTabEdit>;
146
+ /** Ordered list of tab `key` values (new + system). Optional. */
147
+ tabsOrder?: string[];
148
+ /** Tab strip orientation. Optional. */
149
+ newTabLayout?: 'vertical' | 'horizontal';
150
+ }
151
+ /**
152
+ * A single visibility condition applied to a section or tab.
153
+ *
154
+ * Both fields are required by the backend — pass an empty string / empty object
155
+ * if you have no formula or condition tree.
156
+ */
157
+ export interface VisibilityCondition {
158
+ /** RQL formula that controls visibility. Required. */
159
+ rqlFormula: string;
160
+ /** Layered conditions tree (AST). Required. */
161
+ layeredConditionsTree: Record<string, any>;
162
+ }
163
+ /**
164
+ * Visibility conditions for sections and tabs on a page layout.
165
+ *
166
+ * Pass `{}` for no conditions.
167
+ */
168
+ export interface VisibilityConditions {
169
+ /** Per-section visibility conditions, keyed by section key. Optional. */
170
+ sections?: Record<string, VisibilityCondition>;
171
+ /** Per-tab visibility conditions, keyed by tab key. Optional. */
172
+ tabs?: Record<string, VisibilityCondition>;
173
+ }
174
+ /**
175
+ * Initialization properties for {@link CustomObjectPageLayout}.
176
+ */
177
+ export interface CustomObjectPageLayoutProps {
178
+ /**
179
+ * Stable identifier for this layout (e.g. `'default'`).
180
+ *
181
+ * Required. Use `'default'` for the layout that drives the **Add** form and
182
+ * the default record detail view. Each custom object supports one `'default'`
183
+ * layout.
184
+ */
185
+ apiName: string;
186
+ /**
187
+ * Display name of this layout shown in the layout selector.
188
+ *
189
+ * Required.
190
+ */
191
+ name: string;
192
+ /**
193
+ * Tab structure — which tabs and sections to show on the detail page.
194
+ *
195
+ * Optional. @default `{}`
196
+ */
197
+ tabEdits?: TabEdits;
198
+ /**
199
+ * Header configuration — title field, description field, and action buttons.
200
+ *
201
+ * Optional. @default `{}`
202
+ */
203
+ headerEdits?: HeaderEdits;
204
+ /**
205
+ * Visibility conditions for individual tabs and sections.
206
+ *
207
+ * Optional. @default `{}`
208
+ */
209
+ visibilityConditions?: VisibilityConditions;
210
+ /**
211
+ * Stable identifier for this layout record. Pass a human-readable slug
212
+ * to keep it stable across regenerations.
213
+ *
214
+ * Optional. Auto-generated when omitted. @default generateId('layout')
215
+ */
216
+ layoutId?: string;
217
+ /**
218
+ * Blueprint key used during install. Defaults to the parent object's api_name.
219
+ *
220
+ * Optional.
221
+ */
222
+ blueprintKey?: string;
223
+ }
224
+ /**
225
+ * Defines a page layout and registers it with the manifest.
226
+ *
227
+ * A page layout controls the tab structure, section groupings, header fields,
228
+ * and visibility conditions on a custom object's record detail page. You would
229
+ * normally define one layout per custom object using `apiName: 'default'`.
230
+ *
231
+ * For simple single-tab layouts, use the {@link CustomObjectPageLayout.basic}
232
+ * factory instead of constructing the full props manually.
233
+ *
234
+ * > **Caution:** all keys inside `tabEdits` and `headerEdits` must be camelCase.
235
+ * > Snake_case keys are silently dropped on the wire and produce an empty layout.
236
+ *
237
+ * @example
238
+ * ```ts
239
+ * new CustomObjectPageLayout(memberObj, {
240
+ * apiName: 'default',
241
+ * name: 'Member',
242
+ * layoutId: 'layout_gym_member',
243
+ * headerEdits: { newTitleField: memberDisplayName.getApiName() },
244
+ * tabEdits: {
245
+ * newTabs: [{
246
+ * key: 'member', name: 'Member', type: 'tab_with_sections',
247
+ * sections: [{
248
+ * key: 'profile', name: 'Profile', type: 'fields_section',
249
+ * fields: [
250
+ * { fieldRqlName: memberFirstName.getApiName() },
251
+ * { fieldRqlName: memberEmail.getApiName() },
252
+ * ],
253
+ * }],
254
+ * }],
255
+ * systemTabEdits: {},
256
+ * tabsOrder: ['member'],
257
+ * },
258
+ * visibilityConditions: {},
259
+ * });
260
+ * ```
261
+ *
262
+ * @see {@link CustomObjectPageLayout.basic} — factory for simple single-tab layouts.
263
+ */
264
+ export declare class CustomObjectPageLayout {
265
+ private readonly _layoutId;
266
+ private readonly _apiName;
267
+ private readonly _customObjectApiName;
268
+ private readonly _name;
269
+ private readonly _tabEdits;
270
+ private readonly _headerEdits;
271
+ private readonly _visibilityConditions;
272
+ private readonly _blueprintKey;
273
+ /**
274
+ * @param customObject - The custom object this layout belongs to.
275
+ * @param props - Initialization properties.
276
+ * @throws {Error} If `apiName` or `name` is empty.
277
+ */
278
+ constructor(customObject: CustomObject, props: CustomObjectPageLayoutProps);
279
+ /**
280
+ * Returns the stable identifier for this layout record (e.g. `'layout_gym_member'`).
281
+ */
282
+ getLayoutId(): string;
283
+ /**
284
+ * Returns the api_name of this layout (e.g. `'default'`).
285
+ */
286
+ getApiName(): string;
287
+ /**
288
+ * Returns the api_name of the custom object this layout belongs to.
289
+ */
290
+ getCustomObjectApiName(): string;
291
+ /**
292
+ * Serializes this layout to the wire format consumed by the manifest install endpoint.
293
+ *
294
+ * @returns A plain object with `type: 'CUSTOM_OBJECT_PAGE_LAYOUT'`.
295
+ */
296
+ toDict(): Record<string, any>;
297
+ /**
298
+ * Creates a simple single-tab "Details" layout with a single "General" section.
299
+ *
300
+ * Use this factory when you want a straightforward layout without customizing
301
+ * tabs or sections. Always uses `apiName: 'default'`.
302
+ *
303
+ * @param customObject - The custom object to create the layout for.
304
+ * @param props - Optional. Pass `fields` to populate the General section.
305
+ * @returns A new `CustomObjectPageLayout` registered with the manifest.
306
+ *
307
+ * @example
308
+ * ```ts
309
+ * CustomObjectPageLayout.basic(memberObj, {
310
+ * fields: [memberFirstName, memberEmail, memberStatusField],
311
+ * });
312
+ * ```
313
+ */
314
+ static basic(customObject: CustomObject, props?: {
315
+ fields?: Field[];
316
+ }): CustomObjectPageLayout;
317
+ }
318
+ //# sourceMappingURL=custom-object-page-layout.d.mts.map