@rippling/rippling-sdk 0.2.0-alpha.48 → 0.2.0-alpha.49

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 (524) hide show
  1. package/api-promise.d.mts +1 -0
  2. package/api-promise.d.mts.map +1 -1
  3. package/api-promise.d.ts +1 -0
  4. package/api-promise.d.ts.map +1 -1
  5. package/api-promise.mjs +1 -0
  6. package/api-promise.mjs.map +1 -1
  7. package/client.d.mts.map +1 -1
  8. package/client.d.ts.map +1 -1
  9. package/client.mjs.map +1 -1
  10. package/core/api-promise.d.mts.map +1 -1
  11. package/core/api-promise.d.ts.map +1 -1
  12. package/core/api-promise.mjs.map +1 -1
  13. package/core/error.mjs.map +1 -1
  14. package/core/pagination.d.mts.map +1 -1
  15. package/core/pagination.d.ts.map +1 -1
  16. package/core/pagination.mjs.map +1 -1
  17. package/core/resource.d.mts.map +1 -1
  18. package/core/resource.d.ts.map +1 -1
  19. package/core/uploads.d.mts.map +1 -1
  20. package/core/uploads.d.ts.map +1 -1
  21. package/core/uploads.mjs.map +1 -1
  22. package/error.d.mts +1 -0
  23. package/error.d.mts.map +1 -1
  24. package/error.d.ts +1 -0
  25. package/error.d.ts.map +1 -1
  26. package/error.mjs +1 -0
  27. package/error.mjs.map +1 -1
  28. package/examples/manifest/dental-practice-management/dental-practice-management.ts +18 -41
  29. package/examples/manifest/dental-practice-management/functions/chair-schedule.ts +31 -0
  30. package/examples/manifest/dental-practice-management/functions/operatory-list.ts +31 -0
  31. package/examples/manifest/dental-practice-management/functions/patient-list.ts +31 -0
  32. package/examples/manifest/dental-practice-management/functions/treatment-plan-list.ts +31 -0
  33. package/examples/manifest/dental-practice-management/manifest.json +22 -19
  34. package/examples/manifest/existing-manifest-mutations/existing-manifest-mutations.ts +3 -0
  35. package/examples/manifest/gym-membership-management/functions/check-in-desk.ts +31 -0
  36. package/examples/manifest/gym-membership-management/functions/member-list.ts +31 -0
  37. package/examples/manifest/gym-membership-management/functions/today-schedule.ts +31 -0
  38. package/examples/manifest/gym-membership-management/functions/trainer-list.ts +31 -0
  39. package/examples/manifest/gym-membership-management/gym-membership-management.ts +28 -41
  40. package/examples/manifest/gym-membership-management/manifest.json +22 -19
  41. package/examples/manifest/simple-todo-app/functions/todo-list.ts +31 -0
  42. package/examples/manifest/simple-todo-app/manifest.json +429 -0
  43. package/examples/manifest/simple-todo-app/simple-todo-app.ts +167 -0
  44. package/examples/sdui/sdui-crud-todo/rippling-function.ts +14 -23
  45. package/examples/sdui/sdui-showcase/rippling-function.ts +8 -23
  46. package/examples/sdui/sdui-tab-multi-view/rippling-function.ts +276 -295
  47. package/examples/sdui/vote/rippling-function.ts +10 -25
  48. package/index.d.mts.map +1 -1
  49. package/index.d.ts.map +1 -1
  50. package/index.mjs.map +1 -1
  51. package/internal/detect-platform.mjs.map +1 -1
  52. package/internal/headers.mjs.map +1 -1
  53. package/internal/parse.d.mts.map +1 -1
  54. package/internal/parse.d.ts.map +1 -1
  55. package/internal/parse.mjs.map +1 -1
  56. package/internal/request-options.d.mts.map +1 -1
  57. package/internal/request-options.d.ts.map +1 -1
  58. package/internal/shims.d.mts +6 -0
  59. package/internal/shims.d.mts.map +1 -1
  60. package/internal/shims.d.ts +6 -0
  61. package/internal/shims.d.ts.map +1 -1
  62. package/internal/to-file.d.mts.map +1 -1
  63. package/internal/to-file.d.ts.map +1 -1
  64. package/internal/to-file.mjs.map +1 -1
  65. package/internal/tslib.js +4 -0
  66. package/internal/types.d.mts +4 -4
  67. package/internal/types.d.mts.map +1 -1
  68. package/internal/types.d.ts +4 -4
  69. package/internal/types.d.ts.map +1 -1
  70. package/internal/uploads.d.mts.map +1 -1
  71. package/internal/uploads.d.ts.map +1 -1
  72. package/internal/uploads.mjs.map +1 -1
  73. package/internal/utils/base64.mjs.map +1 -1
  74. package/internal/utils/log.d.mts.map +1 -1
  75. package/internal/utils/log.d.ts.map +1 -1
  76. package/internal/utils/log.mjs.map +1 -1
  77. package/internal/utils/path.mjs.map +1 -1
  78. package/internal/utils/query.mjs.map +1 -1
  79. package/internal/utils/values.mjs.map +1 -1
  80. package/internal/utils.d.mts.map +1 -1
  81. package/internal/utils.d.ts.map +1 -1
  82. package/internal/utils.mjs.map +1 -1
  83. package/lib/manifest/_existing-component-fields.d.mts +1 -0
  84. package/lib/manifest/_existing-component-fields.d.mts.map +1 -1
  85. package/lib/manifest/_existing-component-fields.d.ts +1 -0
  86. package/lib/manifest/_existing-component-fields.d.ts.map +1 -1
  87. package/lib/manifest/_existing-component-fields.js +5 -0
  88. package/lib/manifest/_existing-component-fields.js.map +1 -1
  89. package/lib/manifest/_existing-component-fields.mjs +4 -0
  90. package/lib/manifest/_existing-component-fields.mjs.map +1 -1
  91. package/lib/manifest/app.d.mts +2 -2
  92. package/lib/manifest/app.d.mts.map +1 -1
  93. package/lib/manifest/app.d.ts +2 -2
  94. package/lib/manifest/app.d.ts.map +1 -1
  95. package/lib/manifest/app.js +2 -3
  96. package/lib/manifest/app.js.map +1 -1
  97. package/lib/manifest/app.mjs +3 -4
  98. package/lib/manifest/app.mjs.map +1 -1
  99. package/lib/manifest/category.d.mts.map +1 -1
  100. package/lib/manifest/category.d.ts.map +1 -1
  101. package/lib/manifest/category.js +1 -3
  102. package/lib/manifest/category.js.map +1 -1
  103. package/lib/manifest/category.mjs +2 -4
  104. package/lib/manifest/category.mjs.map +1 -1
  105. package/lib/manifest/custom-object-field-section.d.mts.map +1 -1
  106. package/lib/manifest/custom-object-field-section.d.ts.map +1 -1
  107. package/lib/manifest/custom-object-field-section.mjs.map +1 -1
  108. package/lib/manifest/custom-object-page-layout.d.mts.map +1 -1
  109. package/lib/manifest/custom-object-page-layout.d.ts.map +1 -1
  110. package/lib/manifest/custom-object-page-layout.mjs.map +1 -1
  111. package/lib/manifest/custom-object.d.mts +2 -2
  112. package/lib/manifest/custom-object.d.mts.map +1 -1
  113. package/lib/manifest/custom-object.d.ts +2 -2
  114. package/lib/manifest/custom-object.d.ts.map +1 -1
  115. package/lib/manifest/custom-object.js +2 -3
  116. package/lib/manifest/custom-object.js.map +1 -1
  117. package/lib/manifest/custom-object.mjs +3 -4
  118. package/lib/manifest/custom-object.mjs.map +1 -1
  119. package/lib/manifest/existing-manifest-context.d.mts.map +1 -1
  120. package/lib/manifest/existing-manifest-context.d.ts.map +1 -1
  121. package/lib/manifest/existing-manifest-context.js +1 -3
  122. package/lib/manifest/existing-manifest-context.js.map +1 -1
  123. package/lib/manifest/existing-manifest-context.mjs +2 -4
  124. package/lib/manifest/existing-manifest-context.mjs.map +1 -1
  125. package/lib/manifest/field.d.mts +2 -2
  126. package/lib/manifest/field.d.mts.map +1 -1
  127. package/lib/manifest/field.d.ts +2 -2
  128. package/lib/manifest/field.d.ts.map +1 -1
  129. package/lib/manifest/field.js +2 -3
  130. package/lib/manifest/field.js.map +1 -1
  131. package/lib/manifest/field.mjs +3 -4
  132. package/lib/manifest/field.mjs.map +1 -1
  133. package/lib/manifest/index.d.mts.map +1 -1
  134. package/lib/manifest/index.d.ts.map +1 -1
  135. package/lib/manifest/index.mjs.map +1 -1
  136. package/lib/manifest/list-view.d.mts +2 -2
  137. package/lib/manifest/list-view.d.mts.map +1 -1
  138. package/lib/manifest/list-view.d.ts +2 -2
  139. package/lib/manifest/list-view.d.ts.map +1 -1
  140. package/lib/manifest/list-view.js +2 -4
  141. package/lib/manifest/list-view.js.map +1 -1
  142. package/lib/manifest/list-view.mjs +3 -5
  143. package/lib/manifest/list-view.mjs.map +1 -1
  144. package/lib/manifest/manifest-builder.d.mts +3 -3
  145. package/lib/manifest/manifest-builder.d.mts.map +1 -1
  146. package/lib/manifest/manifest-builder.d.ts +3 -3
  147. package/lib/manifest/manifest-builder.d.ts.map +1 -1
  148. package/lib/manifest/manifest-builder.js +3 -5
  149. package/lib/manifest/manifest-builder.js.map +1 -1
  150. package/lib/manifest/manifest-builder.mjs +3 -5
  151. package/lib/manifest/manifest-builder.mjs.map +1 -1
  152. package/lib/manifest/manifest-function.d.mts +4 -5
  153. package/lib/manifest/manifest-function.d.mts.map +1 -1
  154. package/lib/manifest/manifest-function.d.ts +4 -5
  155. package/lib/manifest/manifest-function.d.ts.map +1 -1
  156. package/lib/manifest/manifest-function.js +5 -8
  157. package/lib/manifest/manifest-function.js.map +1 -1
  158. package/lib/manifest/manifest-function.mjs +6 -9
  159. package/lib/manifest/manifest-function.mjs.map +1 -1
  160. package/lib/manifest/rule.d.mts +2 -2
  161. package/lib/manifest/rule.d.mts.map +1 -1
  162. package/lib/manifest/rule.d.ts +2 -2
  163. package/lib/manifest/rule.d.ts.map +1 -1
  164. package/lib/manifest/rule.js +2 -4
  165. package/lib/manifest/rule.js.map +1 -1
  166. package/lib/manifest/rule.mjs +3 -5
  167. package/lib/manifest/rule.mjs.map +1 -1
  168. package/lib/manifest/sdui-page.d.mts +2 -2
  169. package/lib/manifest/sdui-page.d.mts.map +1 -1
  170. package/lib/manifest/sdui-page.d.ts +2 -2
  171. package/lib/manifest/sdui-page.d.ts.map +1 -1
  172. package/lib/manifest/sdui-page.js +2 -4
  173. package/lib/manifest/sdui-page.js.map +1 -1
  174. package/lib/manifest/sdui-page.mjs +3 -5
  175. package/lib/manifest/sdui-page.mjs.map +1 -1
  176. package/lib/manifest/validation.d.mts.map +1 -1
  177. package/lib/manifest/validation.d.ts.map +1 -1
  178. package/lib/manifest/validation.mjs.map +1 -1
  179. package/lib/manifest.d.mts +2 -0
  180. package/lib/manifest.d.mts.map +1 -0
  181. package/lib/manifest.d.ts +2 -0
  182. package/lib/manifest.d.ts.map +1 -0
  183. package/lib/manifest.js +5 -0
  184. package/lib/manifest.js.map +1 -0
  185. package/lib/manifest.mjs +2 -0
  186. package/lib/manifest.mjs.map +1 -0
  187. package/lib/sdui/actions.mjs.map +1 -1
  188. package/lib/sdui/component.d.mts.map +1 -1
  189. package/lib/sdui/component.d.ts.map +1 -1
  190. package/lib/sdui/components.d.mts.map +1 -1
  191. package/lib/sdui/components.d.ts.map +1 -1
  192. package/lib/sdui/conditions.mjs.map +1 -1
  193. package/lib/sdui/directives.d.mts.map +1 -1
  194. package/lib/sdui/directives.d.ts.map +1 -1
  195. package/lib/sdui/directives.mjs.map +1 -1
  196. package/lib/sdui/index.d.mts.map +1 -1
  197. package/lib/sdui/index.d.ts.map +1 -1
  198. package/lib/sdui/index.mjs +11 -0
  199. package/lib/sdui/index.mjs.map +1 -1
  200. package/lib/sdui/props.d.mts.map +1 -1
  201. package/lib/sdui/props.d.ts.map +1 -1
  202. package/lib/sdui/props.mjs.map +1 -1
  203. package/lib/sdui/render.d.mts.map +1 -1
  204. package/lib/sdui/render.d.ts.map +1 -1
  205. package/lib/sdui.d.mts +3 -0
  206. package/lib/sdui.d.mts.map +1 -0
  207. package/lib/sdui.d.ts +3 -0
  208. package/lib/sdui.d.ts.map +1 -0
  209. package/lib/sdui.js +8 -0
  210. package/lib/sdui.js.map +1 -0
  211. package/lib/sdui.mjs +3 -0
  212. package/lib/sdui.mjs.map +1 -0
  213. package/package.json +1 -1
  214. package/pagination.d.mts +1 -0
  215. package/pagination.d.mts.map +1 -1
  216. package/pagination.d.ts +1 -0
  217. package/pagination.d.ts.map +1 -1
  218. package/pagination.mjs +1 -0
  219. package/pagination.mjs.map +1 -1
  220. package/resource.d.mts +1 -0
  221. package/resource.d.mts.map +1 -1
  222. package/resource.d.ts +1 -0
  223. package/resource.d.ts.map +1 -1
  224. package/resource.mjs +1 -0
  225. package/resource.mjs.map +1 -1
  226. package/resources/business-partner-groups.d.mts.map +1 -1
  227. package/resources/business-partner-groups.d.ts.map +1 -1
  228. package/resources/business-partner-groups.mjs.map +1 -1
  229. package/resources/business-partners.d.mts.map +1 -1
  230. package/resources/business-partners.d.ts.map +1 -1
  231. package/resources/business-partners.mjs.map +1 -1
  232. package/resources/candidate-applications.d.mts.map +1 -1
  233. package/resources/candidate-applications.d.ts.map +1 -1
  234. package/resources/candidate-applications.mjs.map +1 -1
  235. package/resources/candidates.d.mts.map +1 -1
  236. package/resources/candidates.d.ts.map +1 -1
  237. package/resources/candidates.mjs.map +1 -1
  238. package/resources/companies.d.mts.map +1 -1
  239. package/resources/companies.d.ts.map +1 -1
  240. package/resources/companies.mjs.map +1 -1
  241. package/resources/company-legal-entities.d.mts.map +1 -1
  242. package/resources/company-legal-entities.d.ts.map +1 -1
  243. package/resources/company-legal-entities.mjs.map +1 -1
  244. package/resources/company-legal-entity-workers.d.mts.map +1 -1
  245. package/resources/company-legal-entity-workers.d.ts.map +1 -1
  246. package/resources/company-legal-entity-workers.mjs.map +1 -1
  247. package/resources/compensation-bands-details.d.mts.map +1 -1
  248. package/resources/compensation-bands-details.d.ts.map +1 -1
  249. package/resources/compensation-bands-details.mjs.map +1 -1
  250. package/resources/compensations.d.mts.map +1 -1
  251. package/resources/compensations.d.ts.map +1 -1
  252. package/resources/compensations.mjs.map +1 -1
  253. package/resources/custom-apps.d.mts.map +1 -1
  254. package/resources/custom-apps.d.ts.map +1 -1
  255. package/resources/custom-apps.mjs.map +1 -1
  256. package/resources/custom-fields.d.mts.map +1 -1
  257. package/resources/custom-fields.d.ts.map +1 -1
  258. package/resources/custom-fields.mjs.map +1 -1
  259. package/resources/custom-objects/custom-objects.d.mts.map +1 -1
  260. package/resources/custom-objects/custom-objects.d.ts.map +1 -1
  261. package/resources/custom-objects/custom-objects.mjs.map +1 -1
  262. package/resources/custom-objects/fields.d.mts.map +1 -1
  263. package/resources/custom-objects/fields.d.ts.map +1 -1
  264. package/resources/custom-objects/fields.mjs.map +1 -1
  265. package/resources/custom-objects/index.d.mts.map +1 -1
  266. package/resources/custom-objects/index.d.ts.map +1 -1
  267. package/resources/custom-objects/index.mjs.map +1 -1
  268. package/resources/custom-objects/records.d.mts.map +1 -1
  269. package/resources/custom-objects/records.d.ts.map +1 -1
  270. package/resources/custom-objects/records.mjs.map +1 -1
  271. package/resources/custom-objects.d.mts.map +1 -1
  272. package/resources/custom-objects.d.ts.map +1 -1
  273. package/resources/custom-objects.mjs.map +1 -1
  274. package/resources/custom-pages.d.mts.map +1 -1
  275. package/resources/custom-pages.d.ts.map +1 -1
  276. package/resources/custom-pages.mjs.map +1 -1
  277. package/resources/custom-settings.d.mts.map +1 -1
  278. package/resources/custom-settings.d.ts.map +1 -1
  279. package/resources/custom-settings.mjs.map +1 -1
  280. package/resources/departments.d.mts.map +1 -1
  281. package/resources/departments.d.ts.map +1 -1
  282. package/resources/departments.mjs.map +1 -1
  283. package/resources/draft-hires.d.mts.map +1 -1
  284. package/resources/draft-hires.d.ts.map +1 -1
  285. package/resources/draft-hires.mjs.map +1 -1
  286. package/resources/earning-types.d.mts.map +1 -1
  287. package/resources/earning-types.d.ts.map +1 -1
  288. package/resources/earning-types.mjs.map +1 -1
  289. package/resources/earnings-inputs.d.mts.map +1 -1
  290. package/resources/earnings-inputs.d.ts.map +1 -1
  291. package/resources/earnings-inputs.mjs.map +1 -1
  292. package/resources/employment-types.d.mts.map +1 -1
  293. package/resources/employment-types.d.ts.map +1 -1
  294. package/resources/employment-types.mjs.map +1 -1
  295. package/resources/entitlements.d.mts.map +1 -1
  296. package/resources/entitlements.d.ts.map +1 -1
  297. package/resources/entitlements.mjs.map +1 -1
  298. package/resources/files.d.mts.map +1 -1
  299. package/resources/files.d.ts.map +1 -1
  300. package/resources/files.mjs.map +1 -1
  301. package/resources/functions/deployments.d.mts.map +1 -1
  302. package/resources/functions/deployments.d.ts.map +1 -1
  303. package/resources/functions/deployments.mjs.map +1 -1
  304. package/resources/functions/executions.d.mts.map +1 -1
  305. package/resources/functions/executions.d.ts.map +1 -1
  306. package/resources/functions/executions.mjs.map +1 -1
  307. package/resources/functions/functions.d.mts.map +1 -1
  308. package/resources/functions/functions.d.ts.map +1 -1
  309. package/resources/functions/functions.mjs.map +1 -1
  310. package/resources/functions/index.d.mts.map +1 -1
  311. package/resources/functions/index.d.ts.map +1 -1
  312. package/resources/functions/index.mjs.map +1 -1
  313. package/resources/functions.d.mts.map +1 -1
  314. package/resources/functions.d.ts.map +1 -1
  315. package/resources/functions.mjs.map +1 -1
  316. package/resources/headcount-positions.d.mts.map +1 -1
  317. package/resources/headcount-positions.d.ts.map +1 -1
  318. package/resources/headcount-positions.mjs.map +1 -1
  319. package/resources/headcount-priorities.d.mts.map +1 -1
  320. package/resources/headcount-priorities.d.ts.map +1 -1
  321. package/resources/headcount-priorities.mjs.map +1 -1
  322. package/resources/index.d.mts.map +1 -1
  323. package/resources/index.d.ts.map +1 -1
  324. package/resources/index.mjs.map +1 -1
  325. package/resources/job-assignments.d.mts.map +1 -1
  326. package/resources/job-assignments.d.ts.map +1 -1
  327. package/resources/job-assignments.mjs.map +1 -1
  328. package/resources/job-codes.d.mts.map +1 -1
  329. package/resources/job-codes.d.ts.map +1 -1
  330. package/resources/job-codes.mjs.map +1 -1
  331. package/resources/job-dimensions.d.mts.map +1 -1
  332. package/resources/job-dimensions.d.ts.map +1 -1
  333. package/resources/job-dimensions.mjs.map +1 -1
  334. package/resources/job-functions.d.mts.map +1 -1
  335. package/resources/job-functions.d.ts.map +1 -1
  336. package/resources/job-functions.mjs.map +1 -1
  337. package/resources/job-pay-rate-exceptions.d.mts.map +1 -1
  338. package/resources/job-pay-rate-exceptions.d.ts.map +1 -1
  339. package/resources/job-pay-rate-exceptions.mjs.map +1 -1
  340. package/resources/job-requisitions-write.d.mts.map +1 -1
  341. package/resources/job-requisitions-write.d.ts.map +1 -1
  342. package/resources/job-requisitions-write.mjs.map +1 -1
  343. package/resources/job-requisitions.d.mts.map +1 -1
  344. package/resources/job-requisitions.d.ts.map +1 -1
  345. package/resources/job-requisitions.mjs.map +1 -1
  346. package/resources/kiosk-badges.d.mts.map +1 -1
  347. package/resources/kiosk-badges.d.ts.map +1 -1
  348. package/resources/kiosk-badges.mjs.map +1 -1
  349. package/resources/leave-accruals.d.mts.map +1 -1
  350. package/resources/leave-accruals.d.ts.map +1 -1
  351. package/resources/leave-accruals.mjs.map +1 -1
  352. package/resources/leave-balances.d.mts.map +1 -1
  353. package/resources/leave-balances.d.ts.map +1 -1
  354. package/resources/leave-balances.mjs.map +1 -1
  355. package/resources/leave-requests.d.mts.map +1 -1
  356. package/resources/leave-requests.d.ts.map +1 -1
  357. package/resources/leave-requests.mjs.map +1 -1
  358. package/resources/leave-types.d.mts.map +1 -1
  359. package/resources/leave-types.d.ts.map +1 -1
  360. package/resources/leave-types.mjs.map +1 -1
  361. package/resources/legal-entities.d.mts.map +1 -1
  362. package/resources/legal-entities.d.ts.map +1 -1
  363. package/resources/legal-entities.mjs.map +1 -1
  364. package/resources/levels.d.mts.map +1 -1
  365. package/resources/levels.d.ts.map +1 -1
  366. package/resources/levels.mjs.map +1 -1
  367. package/resources/location-factors.d.mts.map +1 -1
  368. package/resources/location-factors.d.ts.map +1 -1
  369. package/resources/location-factors.mjs.map +1 -1
  370. package/resources/metadata/components.d.mts.map +1 -1
  371. package/resources/metadata/components.d.ts.map +1 -1
  372. package/resources/metadata/components.mjs.map +1 -1
  373. package/resources/metadata/index.d.mts.map +1 -1
  374. package/resources/metadata/index.d.ts.map +1 -1
  375. package/resources/metadata/index.mjs.map +1 -1
  376. package/resources/metadata/metadata.d.mts.map +1 -1
  377. package/resources/metadata/metadata.d.ts.map +1 -1
  378. package/resources/metadata/metadata.mjs.map +1 -1
  379. package/resources/metadata/summary.d.mts.map +1 -1
  380. package/resources/metadata/summary.d.ts.map +1 -1
  381. package/resources/metadata/summary.mjs.map +1 -1
  382. package/resources/metadata/types.d.mts.map +1 -1
  383. package/resources/metadata/types.d.ts.map +1 -1
  384. package/resources/metadata/types.mjs.map +1 -1
  385. package/resources/metadata.d.mts.map +1 -1
  386. package/resources/metadata.d.ts.map +1 -1
  387. package/resources/metadata.mjs.map +1 -1
  388. package/resources/object-categories.d.mts.map +1 -1
  389. package/resources/object-categories.d.ts.map +1 -1
  390. package/resources/object-categories.mjs.map +1 -1
  391. package/resources/payroll-runs/index.d.mts.map +1 -1
  392. package/resources/payroll-runs/index.d.ts.map +1 -1
  393. package/resources/payroll-runs/index.mjs.map +1 -1
  394. package/resources/payroll-runs/payroll-runs.d.mts.map +1 -1
  395. package/resources/payroll-runs/payroll-runs.d.ts.map +1 -1
  396. package/resources/payroll-runs/payroll-runs.mjs.map +1 -1
  397. package/resources/payroll-runs/worker-payroll-records.d.mts.map +1 -1
  398. package/resources/payroll-runs/worker-payroll-records.d.ts.map +1 -1
  399. package/resources/payroll-runs/worker-payroll-records.mjs.map +1 -1
  400. package/resources/payroll-runs.d.mts.map +1 -1
  401. package/resources/payroll-runs.d.ts.map +1 -1
  402. package/resources/payroll-runs.mjs.map +1 -1
  403. package/resources/platform-capabilities.d.mts.map +1 -1
  404. package/resources/platform-capabilities.d.ts.map +1 -1
  405. package/resources/platform-capabilities.mjs.map +1 -1
  406. package/resources/report-runs.d.mts.map +1 -1
  407. package/resources/report-runs.d.ts.map +1 -1
  408. package/resources/report-runs.mjs.map +1 -1
  409. package/resources/reports/available-filters.d.mts.map +1 -1
  410. package/resources/reports/available-filters.d.ts.map +1 -1
  411. package/resources/reports/available-filters.mjs.map +1 -1
  412. package/resources/reports/index.d.mts.map +1 -1
  413. package/resources/reports/index.d.ts.map +1 -1
  414. package/resources/reports/index.mjs.map +1 -1
  415. package/resources/reports/reports.d.mts.map +1 -1
  416. package/resources/reports/reports.d.ts.map +1 -1
  417. package/resources/reports/reports.mjs.map +1 -1
  418. package/resources/reports.d.mts.map +1 -1
  419. package/resources/reports.d.ts.map +1 -1
  420. package/resources/reports.mjs.map +1 -1
  421. package/resources/schedules.d.mts.map +1 -1
  422. package/resources/schedules.d.ts.map +1 -1
  423. package/resources/schedules.mjs.map +1 -1
  424. package/resources/shared.d.mts.map +1 -1
  425. package/resources/shared.d.ts.map +1 -1
  426. package/resources/shift-assignments.d.mts.map +1 -1
  427. package/resources/shift-assignments.d.ts.map +1 -1
  428. package/resources/shift-assignments.mjs.map +1 -1
  429. package/resources/shift-inputs.d.mts.map +1 -1
  430. package/resources/shift-inputs.d.ts.map +1 -1
  431. package/resources/shift-inputs.mjs.map +1 -1
  432. package/resources/shiftassignments.d.mts.map +1 -1
  433. package/resources/shiftassignments.d.ts.map +1 -1
  434. package/resources/shiftassignments.mjs.map +1 -1
  435. package/resources/sso-me.d.mts.map +1 -1
  436. package/resources/sso-me.d.ts.map +1 -1
  437. package/resources/sso-me.mjs.map +1 -1
  438. package/resources/supergroups/exclusion-members.d.mts.map +1 -1
  439. package/resources/supergroups/exclusion-members.d.ts.map +1 -1
  440. package/resources/supergroups/exclusion-members.mjs.map +1 -1
  441. package/resources/supergroups/inclusion-members.d.mts.map +1 -1
  442. package/resources/supergroups/inclusion-members.d.ts.map +1 -1
  443. package/resources/supergroups/inclusion-members.mjs.map +1 -1
  444. package/resources/supergroups/index.d.mts.map +1 -1
  445. package/resources/supergroups/index.d.ts.map +1 -1
  446. package/resources/supergroups/index.mjs.map +1 -1
  447. package/resources/supergroups/members.d.mts.map +1 -1
  448. package/resources/supergroups/members.d.ts.map +1 -1
  449. package/resources/supergroups/members.mjs.map +1 -1
  450. package/resources/supergroups/supergroups.d.mts.map +1 -1
  451. package/resources/supergroups/supergroups.d.ts.map +1 -1
  452. package/resources/supergroups/supergroups.mjs.map +1 -1
  453. package/resources/supergroups.d.mts.map +1 -1
  454. package/resources/supergroups.d.ts.map +1 -1
  455. package/resources/supergroups.mjs.map +1 -1
  456. package/resources/teams.d.mts.map +1 -1
  457. package/resources/teams.d.ts.map +1 -1
  458. package/resources/teams.mjs.map +1 -1
  459. package/resources/time-cards.d.mts.map +1 -1
  460. package/resources/time-cards.d.ts.map +1 -1
  461. package/resources/time-cards.mjs.map +1 -1
  462. package/resources/time-entries.d.mts.map +1 -1
  463. package/resources/time-entries.d.ts.map +1 -1
  464. package/resources/time-entries.mjs.map +1 -1
  465. package/resources/titles.d.mts.map +1 -1
  466. package/resources/titles.d.ts.map +1 -1
  467. package/resources/titles.mjs.map +1 -1
  468. package/resources/tracks.d.mts.map +1 -1
  469. package/resources/tracks.d.ts.map +1 -1
  470. package/resources/tracks.mjs.map +1 -1
  471. package/resources/unassigned-shifts.d.mts.map +1 -1
  472. package/resources/unassigned-shifts.d.ts.map +1 -1
  473. package/resources/unassigned-shifts.mjs.map +1 -1
  474. package/resources/unassignedshifts.d.mts.map +1 -1
  475. package/resources/unassignedshifts.d.ts.map +1 -1
  476. package/resources/unassignedshifts.mjs.map +1 -1
  477. package/resources/users.d.mts.map +1 -1
  478. package/resources/users.d.ts.map +1 -1
  479. package/resources/users.mjs.map +1 -1
  480. package/resources/work-locations.d.mts.map +1 -1
  481. package/resources/work-locations.d.ts.map +1 -1
  482. package/resources/work-locations.mjs.map +1 -1
  483. package/resources/workers.d.mts +1 -1
  484. package/resources/workers.d.mts.map +1 -1
  485. package/resources/workers.d.ts +1 -1
  486. package/resources/workers.d.ts.map +1 -1
  487. package/resources/workers.js +1 -1
  488. package/resources/workers.mjs +1 -1
  489. package/resources/workers.mjs.map +1 -1
  490. package/resources/workflow-action-executions.d.mts.map +1 -1
  491. package/resources/workflow-action-executions.d.ts.map +1 -1
  492. package/resources/workflow-action-executions.mjs.map +1 -1
  493. package/resources.d.mts.map +1 -1
  494. package/resources.d.ts.map +1 -1
  495. package/resources.mjs.map +1 -1
  496. package/src/lib/manifest/_existing-component-fields.ts +9 -0
  497. package/src/lib/manifest/app.ts +6 -6
  498. package/src/lib/manifest/category.ts +2 -4
  499. package/src/lib/manifest/custom-object.ts +6 -6
  500. package/src/lib/manifest/existing-manifest-context.ts +6 -4
  501. package/src/lib/manifest/field.ts +10 -6
  502. package/src/lib/manifest/list-view.ts +6 -5
  503. package/src/lib/manifest/manifest-builder.ts +5 -7
  504. package/src/lib/manifest/manifest-function.ts +8 -9
  505. package/src/lib/manifest/rule.ts +6 -6
  506. package/src/lib/manifest/sdui-page.ts +5 -7
  507. package/src/lib/manifest.ts +1 -0
  508. package/src/lib/sdui.ts +2 -0
  509. package/src/resources/workers.ts +1 -1
  510. package/src/version.ts +1 -1
  511. package/uploads.d.mts +1 -0
  512. package/uploads.d.mts.map +1 -1
  513. package/uploads.d.ts +1 -0
  514. package/uploads.d.ts.map +1 -1
  515. package/uploads.mjs +1 -0
  516. package/uploads.mjs.map +1 -1
  517. package/version.d.mts +1 -1
  518. package/version.d.ts +1 -1
  519. package/version.js +1 -1
  520. package/version.mjs +1 -1
  521. package/examples/sdui/sdui-crud-todo/sdui-crud-todo.ts +0 -282
  522. package/examples/sdui/sdui-showcase/sdui-showcase.ts +0 -346
  523. package/examples/sdui/sdui-tab-multi-view/sdui-tab-multi-view.ts +0 -914
  524. package/examples/sdui/vote/vote.ts +0 -294
@@ -0,0 +1,429 @@
1
+ {
2
+ "metadata": {
3
+ "key": "simple_todo_app",
4
+ "name": "Simple Todo",
5
+ "description": "A minimal CRUD todo app: one Custom Object rendered as an SDUI ObjectListView"
6
+ },
7
+ "components": [
8
+ {
9
+ "type": "CUSTOM_CATEGORY",
10
+ "api_name": "simple_todo__c",
11
+ "name": "Tasks",
12
+ "description": "Container for todo records"
13
+ },
14
+ {
15
+ "type": "CUSTOM_OBJECT",
16
+ "api_name": "simple_todo__c",
17
+ "name": "Todo",
18
+ "description": "A single task with status, priority, and due date",
19
+ "category_api_name": "simple_todo__c",
20
+ "icon": {
21
+ "emoji": "✅"
22
+ },
23
+ "plural_label": "Todos"
24
+ },
25
+ {
26
+ "type": "CUSTOM_OBJECT_FIELD",
27
+ "custom_object_api_name": "simple_todo__c",
28
+ "field_api_name": "id",
29
+ "field_display_name": "ID",
30
+ "data_type": {
31
+ "options_list": [],
32
+ "supported_types": [],
33
+ "field_type": "TEXT"
34
+ },
35
+ "description": "The Rippling ID of a record",
36
+ "is_required": true,
37
+ "is_unique": true,
38
+ "is_indexed": null,
39
+ "rql_formula": null,
40
+ "formula_attr_metas": null,
41
+ "is_standard": true,
42
+ "derived_aggregated_field": null,
43
+ "derived_field_formula": null,
44
+ "section": null
45
+ },
46
+ {
47
+ "type": "CUSTOM_OBJECT_FIELD",
48
+ "custom_object_api_name": "simple_todo__c",
49
+ "field_api_name": "created_at",
50
+ "field_display_name": "Created Date",
51
+ "data_type": {
52
+ "options_list": [],
53
+ "supported_types": [],
54
+ "field_type": "DATETIME"
55
+ },
56
+ "description": "The date and time a record was created",
57
+ "is_required": false,
58
+ "is_unique": false,
59
+ "is_indexed": null,
60
+ "rql_formula": null,
61
+ "formula_attr_metas": null,
62
+ "is_standard": true,
63
+ "derived_aggregated_field": null,
64
+ "derived_field_formula": null,
65
+ "section": null
66
+ },
67
+ {
68
+ "type": "CUSTOM_OBJECT_FIELD",
69
+ "custom_object_api_name": "simple_todo__c",
70
+ "field_api_name": "updated_at",
71
+ "field_display_name": "Last Modified Date",
72
+ "data_type": {
73
+ "options_list": [],
74
+ "supported_types": [],
75
+ "field_type": "DATETIME"
76
+ },
77
+ "description": "The date and time a record was last updated",
78
+ "is_required": false,
79
+ "is_unique": false,
80
+ "is_indexed": null,
81
+ "rql_formula": null,
82
+ "formula_attr_metas": null,
83
+ "is_standard": true,
84
+ "derived_aggregated_field": null,
85
+ "derived_field_formula": null,
86
+ "section": null
87
+ },
88
+ {
89
+ "type": "CUSTOM_OBJECT_FIELD",
90
+ "custom_object_api_name": "simple_todo__c",
91
+ "field_api_name": "system_updated_at",
92
+ "field_display_name": "System Modified At",
93
+ "data_type": {
94
+ "options_list": [],
95
+ "supported_types": [],
96
+ "field_type": "DATETIME"
97
+ },
98
+ "description": "The date and time a record was last updated by the system",
99
+ "is_required": false,
100
+ "is_unique": false,
101
+ "is_indexed": null,
102
+ "rql_formula": null,
103
+ "formula_attr_metas": null,
104
+ "is_standard": true,
105
+ "derived_aggregated_field": null,
106
+ "derived_field_formula": null,
107
+ "section": null
108
+ },
109
+ {
110
+ "type": "CUSTOM_OBJECT_FIELD",
111
+ "custom_object_api_name": "simple_todo__c",
112
+ "field_api_name": "external_id",
113
+ "field_display_name": "External ID",
114
+ "data_type": {
115
+ "options_list": [],
116
+ "supported_types": [],
117
+ "field_type": "TEXT"
118
+ },
119
+ "description": "The external identifier for a record used in third party integrations",
120
+ "is_required": false,
121
+ "is_unique": true,
122
+ "is_indexed": null,
123
+ "rql_formula": null,
124
+ "formula_attr_metas": null,
125
+ "is_standard": true,
126
+ "derived_aggregated_field": null,
127
+ "derived_field_formula": null,
128
+ "section": null
129
+ },
130
+ {
131
+ "type": "CUSTOM_OBJECT_FIELD",
132
+ "custom_object_api_name": "simple_todo__c",
133
+ "field_api_name": "name",
134
+ "field_display_name": "Name",
135
+ "data_type": {
136
+ "options_list": [],
137
+ "supported_types": [],
138
+ "field_type": "TEXT"
139
+ },
140
+ "description": "A string used to describe a record. This is used for display purposes as well as search",
141
+ "is_required": true,
142
+ "is_unique": false,
143
+ "is_indexed": null,
144
+ "rql_formula": null,
145
+ "formula_attr_metas": null,
146
+ "is_standard": true,
147
+ "derived_aggregated_field": null,
148
+ "derived_field_formula": null,
149
+ "section": null
150
+ },
151
+ {
152
+ "type": "CUSTOM_OBJECT_FIELD",
153
+ "custom_object_api_name": "simple_todo__c",
154
+ "field_api_name": "owner_role",
155
+ "field_display_name": "Owner",
156
+ "data_type": {
157
+ "options_list": [],
158
+ "supported_types": [],
159
+ "field_type": "NATIVE_EDGE",
160
+ "og_model_rql_name": "Employee",
161
+ "db_model_name": "RoleWithCompany",
162
+ "reference_column_storage_type": "STRING"
163
+ },
164
+ "description": "The Employee responsible for the record. This is used by Permissions to determine who has ability to view, edit, and delete data",
165
+ "is_required": false,
166
+ "is_unique": false,
167
+ "is_indexed": null,
168
+ "rql_formula": null,
169
+ "formula_attr_metas": null,
170
+ "is_standard": true,
171
+ "derived_aggregated_field": null,
172
+ "derived_field_formula": null,
173
+ "section": null
174
+ },
175
+ {
176
+ "type": "CUSTOM_OBJECT_FIELD",
177
+ "custom_object_api_name": "simple_todo__c",
178
+ "field_api_name": "last_modified_by",
179
+ "field_display_name": "Last Modified by",
180
+ "data_type": {
181
+ "options_list": [],
182
+ "supported_types": [],
183
+ "field_type": "NATIVE_EDGE",
184
+ "og_model_rql_name": "Employee",
185
+ "db_model_name": "RoleWithCompany",
186
+ "reference_column_storage_type": "STRING"
187
+ },
188
+ "description": "The Employee who made the latest change.",
189
+ "is_required": false,
190
+ "is_unique": false,
191
+ "is_indexed": null,
192
+ "rql_formula": null,
193
+ "formula_attr_metas": null,
194
+ "is_standard": true,
195
+ "derived_aggregated_field": null,
196
+ "derived_field_formula": null,
197
+ "section": null
198
+ },
199
+ {
200
+ "type": "CUSTOM_OBJECT_FIELD",
201
+ "custom_object_api_name": "simple_todo__c",
202
+ "field_api_name": "created_by",
203
+ "field_display_name": "Created by",
204
+ "data_type": {
205
+ "options_list": [],
206
+ "supported_types": [],
207
+ "field_type": "NATIVE_EDGE",
208
+ "og_model_rql_name": "Employee",
209
+ "db_model_name": "RoleWithCompany",
210
+ "reference_column_storage_type": "STRING"
211
+ },
212
+ "description": "The Employee who created the record",
213
+ "is_required": false,
214
+ "is_unique": false,
215
+ "is_indexed": null,
216
+ "rql_formula": null,
217
+ "formula_attr_metas": null,
218
+ "is_standard": true,
219
+ "derived_aggregated_field": null,
220
+ "derived_field_formula": null,
221
+ "section": null
222
+ },
223
+ {
224
+ "type": "CUSTOM_OBJECT_FIELD_SECTION",
225
+ "section_id": "sec_todo_details",
226
+ "model_name": "simple_todo__c",
227
+ "name": "Details"
228
+ },
229
+ {
230
+ "type": "CUSTOM_OBJECT_FIELD",
231
+ "custom_object_api_name": "simple_todo__c",
232
+ "field_api_name": "title__c",
233
+ "field_display_name": "Title",
234
+ "data_type": {
235
+ "options_list": [],
236
+ "supported_types": [],
237
+ "field_type": "TEXT",
238
+ "max_length": 200
239
+ },
240
+ "description": null,
241
+ "is_required": true,
242
+ "is_unique": null,
243
+ "is_indexed": null,
244
+ "rql_formula": null,
245
+ "formula_attr_metas": null,
246
+ "is_standard": false,
247
+ "derived_aggregated_field": null,
248
+ "derived_field_formula": null,
249
+ "section": "sec_todo_details"
250
+ },
251
+ {
252
+ "type": "CUSTOM_OBJECT_FIELD",
253
+ "custom_object_api_name": "simple_todo__c",
254
+ "field_api_name": "status__c",
255
+ "field_display_name": "Status",
256
+ "data_type": {
257
+ "options_list": ["To Do", "In Progress", "Done"],
258
+ "supported_types": [],
259
+ "field_type": "SELECT"
260
+ },
261
+ "description": null,
262
+ "is_required": true,
263
+ "is_unique": null,
264
+ "is_indexed": null,
265
+ "rql_formula": null,
266
+ "formula_attr_metas": null,
267
+ "is_standard": false,
268
+ "derived_aggregated_field": null,
269
+ "derived_field_formula": null,
270
+ "section": "sec_todo_details"
271
+ },
272
+ {
273
+ "type": "CUSTOM_OBJECT_FIELD",
274
+ "custom_object_api_name": "simple_todo__c",
275
+ "field_api_name": "priority__c",
276
+ "field_display_name": "Priority",
277
+ "data_type": {
278
+ "options_list": ["Low", "Medium", "High"],
279
+ "supported_types": [],
280
+ "field_type": "SELECT"
281
+ },
282
+ "description": null,
283
+ "is_required": null,
284
+ "is_unique": null,
285
+ "is_indexed": null,
286
+ "rql_formula": null,
287
+ "formula_attr_metas": null,
288
+ "is_standard": false,
289
+ "derived_aggregated_field": null,
290
+ "derived_field_formula": null,
291
+ "section": "sec_todo_details"
292
+ },
293
+ {
294
+ "type": "CUSTOM_OBJECT_FIELD",
295
+ "custom_object_api_name": "simple_todo__c",
296
+ "field_api_name": "due_date__c",
297
+ "field_display_name": "Due date",
298
+ "data_type": {
299
+ "options_list": [],
300
+ "supported_types": [],
301
+ "field_type": "DATE"
302
+ },
303
+ "description": null,
304
+ "is_required": null,
305
+ "is_unique": null,
306
+ "is_indexed": null,
307
+ "rql_formula": null,
308
+ "formula_attr_metas": null,
309
+ "is_standard": false,
310
+ "derived_aggregated_field": null,
311
+ "derived_field_formula": null,
312
+ "section": "sec_todo_details"
313
+ },
314
+ {
315
+ "type": "CUSTOM_OBJECT_FIELD",
316
+ "custom_object_api_name": "simple_todo__c",
317
+ "field_api_name": "notes__c",
318
+ "field_display_name": "Notes",
319
+ "data_type": {
320
+ "options_list": [],
321
+ "supported_types": [],
322
+ "field_type": "LONG_TEXT",
323
+ "max_length": 4000
324
+ },
325
+ "description": null,
326
+ "is_required": null,
327
+ "is_unique": null,
328
+ "is_indexed": null,
329
+ "rql_formula": null,
330
+ "formula_attr_metas": null,
331
+ "is_standard": false,
332
+ "derived_aggregated_field": null,
333
+ "derived_field_formula": null,
334
+ "section": "sec_todo_details"
335
+ },
336
+ {
337
+ "type": "CUSTOM_OBJECT_LIST_VIEW",
338
+ "object_rql_name": "simple_todo__c",
339
+ "view_id": "view_simple_todo_open",
340
+ "name": "Open todos",
341
+ "public": true,
342
+ "fields": ["title__c", "status__c", "priority__c", "due_date__c"],
343
+ "description": "Everything that is not Done, ordered by due date",
344
+ "object_scope": "all",
345
+ "sort_order": "ASC",
346
+ "order_by": "due_date__c",
347
+ "rql_filter": "(status__c != 'Done')"
348
+ },
349
+ {
350
+ "type": "CUSTOM_OBJECT_PAGE_LAYOUT",
351
+ "layout_id": "layout_simple_todo",
352
+ "api_name": "default",
353
+ "object_rql_name": "simple_todo__c",
354
+ "name": "Todo",
355
+ "system_created": false,
356
+ "tab_edits": {
357
+ "tabsOrder": ["todo"],
358
+ "newTabs": [
359
+ {
360
+ "key": "todo",
361
+ "name": "Todo",
362
+ "type": "tab_with_sections",
363
+ "sections": [
364
+ {
365
+ "name": "Details",
366
+ "type": "fields_section",
367
+ "fields": [
368
+ {
369
+ "fieldRqlName": "title__c"
370
+ },
371
+ {
372
+ "fieldRqlName": "status__c"
373
+ },
374
+ {
375
+ "fieldRqlName": "priority__c"
376
+ },
377
+ {
378
+ "fieldRqlName": "due_date__c"
379
+ },
380
+ {
381
+ "fieldRqlName": "notes__c"
382
+ }
383
+ ],
384
+ "key": "sec_todo_details"
385
+ }
386
+ ]
387
+ }
388
+ ],
389
+ "systemTabEdits": {}
390
+ },
391
+ "header_edits": {
392
+ "newTitleField": "title__c"
393
+ },
394
+ "visibility_conditions": {},
395
+ "blueprint_key": "simple_todo__c"
396
+ },
397
+ {
398
+ "type": "FUNCTION",
399
+ "name": "Todos (SDUI)",
400
+ "api_name": "simple_todo_list_fn",
401
+ "description": "SDUI ObjectListView for todo records",
402
+ "code_draft": "import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';\nimport SDUI from '@rippling/rippling-sdk/lib/sdui';\n\nconst OBJECT = 'simple_todo__c';\n\nexport async function onRipplingEvent(\n event: FunctionEvent,\n context: FunctionContext,\n): Promise<FunctionResponse> {\n const action = event['parameters']?.action;\n\n if (!action || action === 'init') {\n const s = SDUI.createState({});\n const root = SDUI.components.VStack({\n children: [\n SDUI.components.ObjectListView({\n objectApiName: OBJECT,\n canSearchInGrid: true,\n }),\n ],\n });\n return new FunctionResponse({\n body: { spec: JSON.stringify(SDUI.render(s, root)) },\n statusCode: 200,\n headers: {},\n message: '',\n });\n }\n\n return new FunctionResponse({ body: {}, statusCode: 200, headers: {}, message: '' });\n}\n",
403
+ "dependencies": {
404
+ "@rippling/rippling-sdk": "^0.2.0-alpha.33"
405
+ }
406
+ },
407
+ {
408
+ "type": "SDUI_PAGE",
409
+ "name": "Todos",
410
+ "sdui_page_id": "simple_todo_page",
411
+ "function_api_name": "simple_todo_list_fn",
412
+ "description": "SDUI ObjectListView for todo records"
413
+ },
414
+ {
415
+ "type": "CUSTOM_APP",
416
+ "api_name": "simple_todo_app",
417
+ "name": "Simple Todo",
418
+ "description": "Minimal todo app: one Custom Object with an SDUI ObjectListView page",
419
+ "app_type": "custom",
420
+ "pages": [
421
+ {
422
+ "api_name": "simple_todo_page",
423
+ "page_type": "sdui_page",
424
+ "sdui_page_id": "simple_todo_page"
425
+ }
426
+ ]
427
+ }
428
+ ]
429
+ }
@@ -0,0 +1,167 @@
1
+ /*
2
+ * Simple Todo — minimal CRUD example.
3
+ *
4
+ * One Custom Object (`simple_todo__c`) with title / status / priority / due date / notes,
5
+ * one section, one list view ("Open todos"), one page layout, and one SDUI page that
6
+ * renders the records via ObjectListView. No SDUI beyond ObjectListView.
7
+ *
8
+ * simple_todo__c ← title, status, priority, due_date, notes
9
+ *
10
+ * Run:
11
+ * yarn tsn examples/manifest/simple-todo-app/simple-todo-app.ts \
12
+ * > examples/manifest/simple-todo-app/manifest.json
13
+ */
14
+
15
+ import * as fs from 'node:fs';
16
+ import * as path from 'node:path';
17
+ import {
18
+ App,
19
+ Category,
20
+ CustomObject,
21
+ CustomObjectFieldSection,
22
+ CustomObjectPageLayout,
23
+ DateField,
24
+ ListViewDef,
25
+ LongTextField,
26
+ ManifestBuilder,
27
+ ManifestFunction,
28
+ SduiPage,
29
+ SelectField,
30
+ TextField,
31
+ } from '@rippling/rippling-sdk/lib/manifest';
32
+
33
+ const manifest = new ManifestBuilder({
34
+ key: 'simple_todo_app',
35
+ name: 'Simple Todo',
36
+ description: 'A minimal CRUD todo app: one Custom Object rendered as an SDUI ObjectListView',
37
+ });
38
+
39
+ const todoCategory = new Category(manifest, {
40
+ apiName: 'simple_todo__c',
41
+ name: 'Tasks',
42
+ description: 'Container for todo records',
43
+ });
44
+
45
+ // ── Todo object ─────────────────────────────────────────────────────────────
46
+ const todoObj = new CustomObject(manifest, {
47
+ apiName: 'simple_todo__c',
48
+ name: 'Todo',
49
+ pluralLabel: 'Todos',
50
+ category: todoCategory,
51
+ description: 'A single task with status, priority, and due date',
52
+ icon: { emoji: '✅' },
53
+ });
54
+
55
+ const detailsSection = new CustomObjectFieldSection(todoObj, {
56
+ name: 'Details',
57
+ sectionId: 'sec_todo_details',
58
+ });
59
+
60
+ const titleField = new TextField(todoObj, {
61
+ apiName: 'title__c',
62
+ displayName: 'Title',
63
+ description: 'Title field',
64
+ required: true,
65
+ maxLength: 200,
66
+ section: detailsSection,
67
+ });
68
+
69
+ const statusField = new SelectField(todoObj, {
70
+ apiName: 'status__c',
71
+ displayName: 'Status',
72
+ description: 'Status field',
73
+ options: ['To Do', 'In Progress', 'Done'],
74
+ required: true,
75
+ section: detailsSection,
76
+ });
77
+
78
+ const priorityField = new SelectField(todoObj, {
79
+ apiName: 'priority__c',
80
+ displayName: 'Priority',
81
+ description: 'Priority field',
82
+ options: ['Low', 'Medium', 'High'],
83
+ section: detailsSection,
84
+ });
85
+
86
+ const dueDateField = new DateField(todoObj, {
87
+ apiName: 'due_date__c',
88
+ displayName: 'Due date',
89
+ description: 'Due date field',
90
+ section: detailsSection,
91
+ });
92
+
93
+ const notesField = new LongTextField(todoObj, {
94
+ apiName: 'notes__c',
95
+ displayName: 'Notes',
96
+ description: 'Notes field',
97
+ maxLength: 4000,
98
+ section: detailsSection,
99
+ });
100
+
101
+ // ── List view: Open todos ───────────────────────────────────────────────────
102
+ new ListViewDef(todoObj, {
103
+ viewId: 'view_simple_todo_open',
104
+ name: 'Open todos',
105
+ description: 'Everything that is not Done, ordered by due date',
106
+ fields: [titleField, statusField, priorityField, dueDateField],
107
+ orderBy: dueDateField,
108
+ sortOrder: 'ASC',
109
+ isPublic: true,
110
+ objectScope: 'all',
111
+ rqlFilter: "(status__c != 'Done')",
112
+ });
113
+
114
+ // ── Page layout ─────────────────────────────────────────────────────────────
115
+ new CustomObjectPageLayout(todoObj, {
116
+ apiName: 'default',
117
+ name: 'Todo',
118
+ layoutId: 'layout_simple_todo',
119
+ headerEdits: { newTitleField: titleField.getApiName() },
120
+ tabEdits: {
121
+ newTabs: [
122
+ {
123
+ key: 'todo',
124
+ name: 'Todo',
125
+ type: 'tab_with_sections',
126
+ sections: [
127
+ {
128
+ name: 'Details',
129
+ type: 'fields_section',
130
+ section: detailsSection,
131
+ fields: [titleField, statusField, priorityField, dueDateField, notesField],
132
+ },
133
+ ],
134
+ },
135
+ ],
136
+ systemTabEdits: {},
137
+ tabsOrder: ['todo'],
138
+ },
139
+ visibilityConditions: {},
140
+ });
141
+
142
+ // ── SDUI page (ObjectListView) ──────────────────────────────────────────────
143
+ const todoListFn = new ManifestFunction(manifest, {
144
+ apiName: 'simple_todo_list_fn',
145
+ name: 'Todos (SDUI)',
146
+ description: 'SDUI ObjectListView for todo records',
147
+ code: fs.readFileSync(path.join(__dirname, 'functions', 'todo-list.ts'), 'utf-8'),
148
+ dependencies: { '@rippling/rippling-sdk': '^0.2.0-alpha.33' },
149
+ isAsync: false,
150
+ });
151
+
152
+ const todoListPage = new SduiPage(manifest, {
153
+ sduiPageId: 'simple_todo_page',
154
+ name: 'Todos',
155
+ function: todoListFn,
156
+ description: 'SDUI ObjectListView for todo records',
157
+ });
158
+
159
+ new App(manifest, {
160
+ apiName: 'simple_todo_app',
161
+ name: 'Simple Todo',
162
+ description: 'Minimal todo app: one Custom Object with an SDUI ObjectListView page',
163
+ appType: 'custom',
164
+ pages: [todoListPage],
165
+ });
166
+
167
+ console.log(manifest.preview());
@@ -1,14 +1,6 @@
1
- /**
2
- * ----------------------------------------------------------------------------
3
- * PASTE THIS ENTIRE FILE INTO THE RIPPLING FUNCTION EDITOR TO PREVIEW RENDERED
4
- * SDUI (CUSTOM PAGE). DEPENDS ON @rippling/rippling-sdk AND @rippling/sdui-builder.
5
- * MOCK DATA ONLY — NO CUSTOM OBJECT API NAMES; SAFE TO RENDER WITHOUT CO DEFINITIONS.
6
- * ----------------------------------------------------------------------------
7
- * Pair file sdui-crud-todo.ts uses import from '@rippling/rippling-sdk/lib/sdui' for local runs.
8
- */
1
+ /** Todo CRUD demo: grid + modals wired to create / update / delete via callFunction. Mock data only. */
9
2
 
10
- /*
11
- import SDUI from '@rippling/sdui-builder';
3
+ import SDUI from '@rippling/rippling-sdk/lib/sdui';
12
4
  import { FunctionContext, FunctionEvent, FunctionResponse } from '@rippling/rippling-sdk';
13
5
 
14
6
  const INITIAL_TODOS = [
@@ -58,10 +50,10 @@ function renderSpec(functionId: string) {
58
50
  SDUI.components.HStack({
59
51
  gap: 'space200',
60
52
  align: 'center',
61
- wrap: true,
53
+ wrap: 'wrap',
62
54
  children: [
63
55
  SDUI.components.Heading({
64
- level: '2',
56
+ level: 2,
65
57
  text: 'Team todos',
66
58
  }),
67
59
  SDUI.components.Badge({
@@ -92,7 +84,7 @@ function renderSpec(functionId: string) {
92
84
  { id: 'notes__c', header: 'Notes', data: 'notes__c' },
93
85
  ],
94
86
  selectedRow: s.selectedRow.$bind,
95
- headerActions: [{ id: 'new', label: 'New Todo', icon: 'ADD', appearance: 'PRIMARY' }],
87
+ headerActions: [{ id: 'new', label: 'New Todo', icon: 'ADD', appearance: 'primary' }],
96
88
  onHeaderAction: [
97
89
  SDUI.actions.set(s.form, { title: '', status: '', priority: '', notes: '' }),
98
90
  SDUI.actions.set(s.showCreateModal, true),
@@ -328,15 +320,15 @@ export async function onRipplingEvent(
328
320
  if (action === 'update') {
329
321
  const p = params ?? {};
330
322
  mutableTodos = mutableTodos.map((r) =>
331
- r.id === p['id']
332
- ? {
333
- ...r,
334
- title__c: (p['title'] as string) || r.title__c,
335
- status__c: (p['status'] as string) || r.status__c,
336
- priority__c: (p['priority'] as string) || r.priority__c,
337
- notes__c: (p['notes'] as string) ?? r.notes__c,
338
- }
339
- : r,
323
+ r.id === p['id'] ?
324
+ {
325
+ ...r,
326
+ title__c: (p['title'] as string) || r.title__c,
327
+ status__c: (p['status'] as string) || r.status__c,
328
+ priority__c: (p['priority'] as string) || r.priority__c,
329
+ notes__c: (p['notes'] as string) ?? r.notes__c,
330
+ }
331
+ : r,
340
332
  );
341
333
  return new FunctionResponse({
342
334
  body: mutableTodos as unknown as Record<string, unknown>,
@@ -364,4 +356,3 @@ export async function onRipplingEvent(
364
356
  message: 'Unknown action',
365
357
  });
366
358
  }
367
- */