@byline/ui 0.9.3

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 (368) hide show
  1. package/LICENSE +373 -0
  2. package/README.md +17 -0
  3. package/dist/admin/components/admin-account/change-password.d.ts +9 -0
  4. package/dist/admin/components/admin-account/change-password.d.ts.map +1 -0
  5. package/dist/admin/components/admin-account/change-password.js +192 -0
  6. package/dist/admin/components/admin-account/change-password.module.js +8 -0
  7. package/dist/admin/components/admin-account/change-password_module.css +27 -0
  8. package/dist/admin/components/admin-account/container.d.ts +30 -0
  9. package/dist/admin/components/admin-account/container.d.ts.map +1 -0
  10. package/dist/admin/components/admin-account/container.js +299 -0
  11. package/dist/admin/components/admin-account/container.module.js +28 -0
  12. package/dist/admin/components/admin-account/container_module.css +106 -0
  13. package/dist/admin/components/admin-account/update.d.ts +9 -0
  14. package/dist/admin/components/admin-account/update.d.ts.map +1 -0
  15. package/dist/admin/components/admin-account/update.js +207 -0
  16. package/dist/admin/components/admin-account/update.module.js +8 -0
  17. package/dist/admin/components/admin-account/update_module.css +27 -0
  18. package/dist/admin/components/admin-permissions/inspector.d.ts +5 -0
  19. package/dist/admin/components/admin-permissions/inspector.d.ts.map +1 -0
  20. package/dist/admin/components/admin-permissions/inspector.js +284 -0
  21. package/dist/admin/components/admin-permissions/inspector.module.js +56 -0
  22. package/dist/admin/components/admin-permissions/inspector_module.css +238 -0
  23. package/dist/admin/components/admin-roles/create.d.ts +8 -0
  24. package/dist/admin/components/admin-roles/create.d.ts.map +1 -0
  25. package/dist/admin/components/admin-roles/create.js +177 -0
  26. package/dist/admin/components/admin-roles/create.module.js +8 -0
  27. package/dist/admin/components/admin-roles/create_module.css +27 -0
  28. package/dist/admin/components/admin-roles/permissions.d.ts +11 -0
  29. package/dist/admin/components/admin-roles/permissions.d.ts.map +1 -0
  30. package/dist/admin/components/admin-roles/permissions.js +303 -0
  31. package/dist/admin/components/admin-roles/permissions.module.js +44 -0
  32. package/dist/admin/components/admin-roles/permissions_module.css +192 -0
  33. package/dist/admin/components/admin-roles/update.d.ts +9 -0
  34. package/dist/admin/components/admin-roles/update.d.ts.map +1 -0
  35. package/dist/admin/components/admin-roles/update.js +166 -0
  36. package/dist/admin/components/admin-roles/update.module.js +8 -0
  37. package/dist/admin/components/admin-roles/update_module.css +27 -0
  38. package/dist/admin/components/admin-users/create.d.ts +9 -0
  39. package/dist/admin/components/admin-users/create.d.ts.map +1 -0
  40. package/dist/admin/components/admin-users/create.js +268 -0
  41. package/dist/admin/components/admin-users/create.module.js +10 -0
  42. package/dist/admin/components/admin-users/create_module.css +45 -0
  43. package/dist/admin/components/admin-users/roles.d.ts +12 -0
  44. package/dist/admin/components/admin-users/roles.d.ts.map +1 -0
  45. package/dist/admin/components/admin-users/roles.js +148 -0
  46. package/dist/admin/components/admin-users/roles.module.js +18 -0
  47. package/dist/admin/components/admin-users/roles_module.css +75 -0
  48. package/dist/admin/components/admin-users/set-password.d.ts +9 -0
  49. package/dist/admin/components/admin-users/set-password.d.ts.map +1 -0
  50. package/dist/admin/components/admin-users/set-password.js +170 -0
  51. package/dist/admin/components/admin-users/set-password.module.js +9 -0
  52. package/dist/admin/components/admin-users/set-password_module.css +31 -0
  53. package/dist/admin/components/admin-users/update.d.ts +9 -0
  54. package/dist/admin/components/admin-users/update.d.ts.map +1 -0
  55. package/dist/admin/components/admin-users/update.js +254 -0
  56. package/dist/admin/components/admin-users/update.module.js +9 -0
  57. package/dist/admin/components/admin-users/update_module.css +34 -0
  58. package/dist/admin/components/auth/sign-in-form.d.ts +14 -0
  59. package/dist/admin/components/auth/sign-in-form.d.ts.map +1 -0
  60. package/dist/admin/components/auth/sign-in-form.js +107 -0
  61. package/dist/admin/components/auth/sign-in-form.module.js +10 -0
  62. package/dist/admin/components/auth/sign-in-form_module.css +35 -0
  63. package/dist/admin/components/collections/diff-modal.d.ts +23 -0
  64. package/dist/admin/components/collections/diff-modal.d.ts.map +1 -0
  65. package/dist/admin/components/collections/diff-modal.js +147 -0
  66. package/dist/admin/components/collections/diff-modal.module.js +14 -0
  67. package/dist/admin/components/collections/diff-modal_module.css +56 -0
  68. package/dist/admin/components/collections/status-badge.d.ts +26 -0
  69. package/dist/admin/components/collections/status-badge.d.ts.map +1 -0
  70. package/dist/admin/components/collections/status-badge.js +35 -0
  71. package/dist/admin/components/collections/status-badge.module.js +7 -0
  72. package/dist/admin/components/collections/status-badge_module.css +20 -0
  73. package/dist/admin/group.d.ts +28 -0
  74. package/dist/admin/group.d.ts.map +1 -0
  75. package/dist/admin/group.js +14 -0
  76. package/dist/admin/group.module.js +6 -0
  77. package/dist/admin/group_module.css +19 -0
  78. package/dist/admin/row.d.ts +26 -0
  79. package/dist/admin/row.d.ts.map +1 -0
  80. package/dist/admin/row.js +8 -0
  81. package/dist/admin/row.module.js +5 -0
  82. package/dist/admin/row_module.css +18 -0
  83. package/dist/admin/tabs.d.ts +33 -0
  84. package/dist/admin/tabs.d.ts.map +1 -0
  85. package/dist/admin/tabs.js +34 -0
  86. package/dist/admin/tabs.module.js +10 -0
  87. package/dist/admin/tabs_module.css +68 -0
  88. package/dist/dnd/draggable-sortable/demo/draggable-list-demo.js +105 -0
  89. package/dist/dnd/draggable-sortable/demo/draggable-list-demo.module.js +12 -0
  90. package/dist/dnd/draggable-sortable/demo/draggable-list-demo_module.css +39 -0
  91. package/dist/dnd/draggable-sortable/draggable-sortable-item/index.d.ts +19 -0
  92. package/dist/dnd/draggable-sortable/draggable-sortable-item/index.d.ts.map +1 -0
  93. package/dist/dnd/draggable-sortable/draggable-sortable-item/index.js +27 -0
  94. package/dist/dnd/draggable-sortable/draggable-sortable-item/types.d.ts +25 -0
  95. package/dist/dnd/draggable-sortable/draggable-sortable-item/types.d.ts.map +1 -0
  96. package/dist/dnd/draggable-sortable/draggable-sortable-item/types.js +1 -0
  97. package/dist/dnd/draggable-sortable/draggable-sortable.d.ts +17 -0
  98. package/dist/dnd/draggable-sortable/draggable-sortable.d.ts.map +1 -0
  99. package/dist/dnd/draggable-sortable/draggable-sortable.js +46 -0
  100. package/dist/dnd/draggable-sortable/index.d.ts +5 -0
  101. package/dist/dnd/draggable-sortable/index.d.ts.map +1 -0
  102. package/dist/dnd/draggable-sortable/index.js +4 -0
  103. package/dist/dnd/draggable-sortable/types.d.ts +26 -0
  104. package/dist/dnd/draggable-sortable/types.d.ts.map +1 -0
  105. package/dist/dnd/draggable-sortable/types.js +1 -0
  106. package/dist/dnd/draggable-sortable/use-draggable-sortable/index.d.ts +16 -0
  107. package/dist/dnd/draggable-sortable/use-draggable-sortable/index.d.ts.map +1 -0
  108. package/dist/dnd/draggable-sortable/use-draggable-sortable/index.js +28 -0
  109. package/dist/dnd/draggable-sortable/use-draggable-sortable/types.d.ts +23 -0
  110. package/dist/dnd/draggable-sortable/use-draggable-sortable/types.d.ts.map +1 -0
  111. package/dist/dnd/draggable-sortable/use-draggable-sortable/types.js +1 -0
  112. package/dist/dnd/draggable-sortable/utils.d.ts +14 -0
  113. package/dist/dnd/draggable-sortable/utils.d.ts.map +1 -0
  114. package/dist/dnd/draggable-sortable/utils.js +10 -0
  115. package/dist/fields/array/array-field.d.ts +15 -0
  116. package/dist/fields/array/array-field.d.ts.map +1 -0
  117. package/dist/fields/array/array-field.js +176 -0
  118. package/dist/fields/array/array-field.module.js +11 -0
  119. package/dist/fields/array/array-field_module.css +32 -0
  120. package/dist/fields/blocks/blocks-field.d.ts +14 -0
  121. package/dist/fields/blocks/blocks-field.d.ts.map +1 -0
  122. package/dist/fields/blocks/blocks-field.js +244 -0
  123. package/dist/fields/blocks/blocks-field.module.js +26 -0
  124. package/dist/fields/blocks/blocks-field_module.css +107 -0
  125. package/dist/fields/checkbox/checkbox-field.d.ts +17 -0
  126. package/dist/fields/checkbox/checkbox-field.d.ts.map +1 -0
  127. package/dist/fields/checkbox/checkbox-field.js +27 -0
  128. package/dist/fields/column-formatter.d.ts +21 -0
  129. package/dist/fields/column-formatter.d.ts.map +1 -0
  130. package/dist/fields/column-formatter.js +15 -0
  131. package/dist/fields/date-time-formatter.d.ts +17 -0
  132. package/dist/fields/date-time-formatter.d.ts.map +1 -0
  133. package/dist/fields/date-time-formatter.js +8 -0
  134. package/dist/fields/datetime/datetime-field.d.ts +17 -0
  135. package/dist/fields/datetime/datetime-field.d.ts.map +1 -0
  136. package/dist/fields/datetime/datetime-field.js +37 -0
  137. package/dist/fields/datetime/datetime-field.module.js +5 -0
  138. package/dist/fields/datetime/datetime-field_module.css +4 -0
  139. package/dist/fields/draggable-context-menu.d.ts +7 -0
  140. package/dist/fields/draggable-context-menu.d.ts.map +1 -0
  141. package/dist/fields/draggable-context-menu.js +83 -0
  142. package/dist/fields/draggable-context-menu.module.js +15 -0
  143. package/dist/fields/draggable-context-menu_module.css +91 -0
  144. package/dist/fields/field-helpers.d.ts +27 -0
  145. package/dist/fields/field-helpers.d.ts.map +1 -0
  146. package/dist/fields/field-helpers.js +48 -0
  147. package/dist/fields/field-renderer.d.ts +31 -0
  148. package/dist/fields/field-renderer.d.ts.map +1 -0
  149. package/dist/fields/field-renderer.js +189 -0
  150. package/dist/fields/field-renderer.module.js +8 -0
  151. package/dist/fields/field-renderer_module.css +11 -0
  152. package/dist/fields/file/file-field.d.ts +18 -0
  153. package/dist/fields/file/file-field.d.ts.map +1 -0
  154. package/dist/fields/file/file-field.js +125 -0
  155. package/dist/fields/file/file-field.module.js +13 -0
  156. package/dist/fields/file/file-field_module.css +64 -0
  157. package/dist/fields/group/group-field.d.ts +16 -0
  158. package/dist/fields/group/group-field.d.ts.map +1 -0
  159. package/dist/fields/group/group-field.js +59 -0
  160. package/dist/fields/group/group-field.module.js +9 -0
  161. package/dist/fields/group/group-field_module.css +27 -0
  162. package/dist/fields/image/image-field.d.ts +20 -0
  163. package/dist/fields/image/image-field.d.ts.map +1 -0
  164. package/dist/fields/image/image-field.js +198 -0
  165. package/dist/fields/image/image-field.module.js +21 -0
  166. package/dist/fields/image/image-field_module.css +96 -0
  167. package/dist/fields/image/image-upload-field.d.ts +22 -0
  168. package/dist/fields/image/image-upload-field.d.ts.map +1 -0
  169. package/dist/fields/image/image-upload-field.js +187 -0
  170. package/dist/fields/image/image-upload-field.module.js +19 -0
  171. package/dist/fields/image/image-upload-field_module.css +92 -0
  172. package/dist/fields/local-date-time.d.ts +28 -0
  173. package/dist/fields/local-date-time.d.ts.map +1 -0
  174. package/dist/fields/local-date-time.js +49 -0
  175. package/dist/fields/locale-badge.d.ts +19 -0
  176. package/dist/fields/locale-badge.d.ts.map +1 -0
  177. package/dist/fields/locale-badge.js +10 -0
  178. package/dist/fields/locale-badge.module.js +5 -0
  179. package/dist/fields/locale-badge_module.css +27 -0
  180. package/dist/fields/numerical/numerical-field.d.ts +19 -0
  181. package/dist/fields/numerical/numerical-field.d.ts.map +1 -0
  182. package/dist/fields/numerical/numerical-field.js +73 -0
  183. package/dist/fields/relation/relation-display.d.ts +41 -0
  184. package/dist/fields/relation/relation-display.d.ts.map +1 -0
  185. package/dist/fields/relation/relation-display.js +58 -0
  186. package/dist/fields/relation/relation-display.module.js +9 -0
  187. package/dist/fields/relation/relation-display_module.css +21 -0
  188. package/dist/fields/relation/relation-field.d.ts +19 -0
  189. package/dist/fields/relation/relation-field.d.ts.map +1 -0
  190. package/dist/fields/relation/relation-field.js +133 -0
  191. package/dist/fields/relation/relation-field.module.js +13 -0
  192. package/dist/fields/relation/relation-field_module.css +62 -0
  193. package/dist/fields/relation/relation-picker.d.ts +50 -0
  194. package/dist/fields/relation/relation-picker.d.ts.map +1 -0
  195. package/dist/fields/relation/relation-picker.js +233 -0
  196. package/dist/fields/relation/relation-picker.module.js +26 -0
  197. package/dist/fields/relation/relation-picker_module.css +124 -0
  198. package/dist/fields/relation/relation-summary.d.ts +32 -0
  199. package/dist/fields/relation/relation-summary.d.ts.map +1 -0
  200. package/dist/fields/relation/relation-summary.js +50 -0
  201. package/dist/fields/relation/relation-summary.module.js +11 -0
  202. package/dist/fields/relation/relation-summary_module.css +37 -0
  203. package/dist/fields/select/select-field.d.ts +17 -0
  204. package/dist/fields/select/select-field.d.ts.map +1 -0
  205. package/dist/fields/select/select-field.js +42 -0
  206. package/dist/fields/select/select-field.module.js +5 -0
  207. package/dist/fields/select/select-field_module.css +4 -0
  208. package/dist/fields/sortable-item.d.ts +16 -0
  209. package/dist/fields/sortable-item.d.ts.map +1 -0
  210. package/dist/fields/sortable-item.js +80 -0
  211. package/dist/fields/sortable-item.module.js +22 -0
  212. package/dist/fields/sortable-item_module.css +124 -0
  213. package/dist/fields/text/text-field.d.ts +21 -0
  214. package/dist/fields/text/text-field.d.ts.map +1 -0
  215. package/dist/fields/text/text-field.js +104 -0
  216. package/dist/fields/text/text-field.module.js +6 -0
  217. package/dist/fields/text/text-field_module.css +5 -0
  218. package/dist/fields/text-area/text-area-field.d.ts +21 -0
  219. package/dist/fields/text-area/text-area-field.d.ts.map +1 -0
  220. package/dist/fields/text-area/text-area-field.js +105 -0
  221. package/dist/fields/text-area/text-area-field.module.js +6 -0
  222. package/dist/fields/text-area/text-area-field_module.css +5 -0
  223. package/dist/fields/use-field-change-handler.d.ts +24 -0
  224. package/dist/fields/use-field-change-handler.d.ts.map +1 -0
  225. package/dist/fields/use-field-change-handler.js +52 -0
  226. package/dist/forms/document-actions.d.ts +14 -0
  227. package/dist/forms/document-actions.d.ts.map +1 -0
  228. package/dist/forms/document-actions.js +153 -0
  229. package/dist/forms/document-actions.module.js +18 -0
  230. package/dist/forms/document-actions_module.css +66 -0
  231. package/dist/forms/form-context.d.ts +78 -0
  232. package/dist/forms/form-context.d.ts.map +1 -0
  233. package/dist/forms/form-context.js +420 -0
  234. package/dist/forms/form-renderer.d.ts +66 -0
  235. package/dist/forms/form-renderer.d.ts.map +1 -0
  236. package/dist/forms/form-renderer.js +555 -0
  237. package/dist/forms/form-renderer.module.js +46 -0
  238. package/dist/forms/form-renderer_module.css +242 -0
  239. package/dist/forms/navigation-guard.d.ts +55 -0
  240. package/dist/forms/navigation-guard.d.ts.map +1 -0
  241. package/dist/forms/navigation-guard.js +22 -0
  242. package/dist/forms/path-widget.d.ts +33 -0
  243. package/dist/forms/path-widget.d.ts.map +1 -0
  244. package/dist/forms/path-widget.js +101 -0
  245. package/dist/forms/path-widget.module.js +8 -0
  246. package/dist/forms/path-widget_module.css +29 -0
  247. package/dist/forms/upload-executor.d.ts +58 -0
  248. package/dist/forms/upload-executor.d.ts.map +1 -0
  249. package/dist/forms/upload-executor.js +92 -0
  250. package/dist/react.d.ts +55 -0
  251. package/dist/react.d.ts.map +1 -0
  252. package/dist/react.js +48 -0
  253. package/dist/services/admin-services-context.d.ts +17 -0
  254. package/dist/services/admin-services-context.d.ts.map +1 -0
  255. package/dist/services/admin-services-context.js +13 -0
  256. package/dist/services/admin-services-types.d.ts +130 -0
  257. package/dist/services/admin-services-types.d.ts.map +1 -0
  258. package/dist/services/admin-services-types.js +1 -0
  259. package/dist/services/field-services-context.d.ts +17 -0
  260. package/dist/services/field-services-context.d.ts.map +1 -0
  261. package/dist/services/field-services-context.js +13 -0
  262. package/dist/services/field-services-types.d.ts +64 -0
  263. package/dist/services/field-services-types.d.ts.map +1 -0
  264. package/dist/services/field-services-types.js +1 -0
  265. package/package.json +133 -0
  266. package/src/admin/components/admin-account/change-password.module.css +40 -0
  267. package/src/admin/components/admin-account/change-password.tsx +232 -0
  268. package/src/admin/components/admin-account/container.module.css +158 -0
  269. package/src/admin/components/admin-account/container.tsx +230 -0
  270. package/src/admin/components/admin-account/update.module.css +40 -0
  271. package/src/admin/components/admin-account/update.tsx +263 -0
  272. package/src/admin/components/admin-permissions/inspector.module.css +326 -0
  273. package/src/admin/components/admin-permissions/inspector.tsx +298 -0
  274. package/src/admin/components/admin-roles/create.module.css +40 -0
  275. package/src/admin/components/admin-roles/create.tsx +218 -0
  276. package/src/admin/components/admin-roles/permissions.module.css +279 -0
  277. package/src/admin/components/admin-roles/permissions.tsx +396 -0
  278. package/src/admin/components/admin-roles/update.module.css +40 -0
  279. package/src/admin/components/admin-roles/update.tsx +218 -0
  280. package/src/admin/components/admin-users/create.module.css +63 -0
  281. package/src/admin/components/admin-users/create.tsx +323 -0
  282. package/src/admin/components/admin-users/roles.module.css +119 -0
  283. package/src/admin/components/admin-users/roles.tsx +172 -0
  284. package/src/admin/components/admin-users/set-password.module.css +46 -0
  285. package/src/admin/components/admin-users/set-password.tsx +199 -0
  286. package/src/admin/components/admin-users/update.module.css +49 -0
  287. package/src/admin/components/admin-users/update.tsx +328 -0
  288. package/src/admin/components/auth/sign-in-form.module.css +53 -0
  289. package/src/admin/components/auth/sign-in-form.tsx +118 -0
  290. package/src/admin/components/collections/diff-modal.module.css +79 -0
  291. package/src/admin/components/collections/diff-modal.tsx +171 -0
  292. package/src/admin/components/collections/status-badge.module.css +31 -0
  293. package/src/admin/components/collections/status-badge.tsx +69 -0
  294. package/src/admin/group.module.css +41 -0
  295. package/src/admin/group.tsx +40 -0
  296. package/src/admin/row.module.css +32 -0
  297. package/src/admin/row.tsx +33 -0
  298. package/src/admin/tabs.module.css +107 -0
  299. package/src/admin/tabs.tsx +74 -0
  300. package/src/declarations.d.ts +4 -0
  301. package/src/dnd/draggable-sortable/demo/draggable-list-demo.module.css +65 -0
  302. package/src/dnd/draggable-sortable/demo/draggable-list-demo.tsx +117 -0
  303. package/src/dnd/draggable-sortable/draggable-sortable-item/index.tsx +54 -0
  304. package/src/dnd/draggable-sortable/draggable-sortable-item/types.ts +30 -0
  305. package/src/dnd/draggable-sortable/draggable-sortable.tsx +86 -0
  306. package/src/dnd/draggable-sortable/index.ts +5 -0
  307. package/src/dnd/draggable-sortable/types.ts +24 -0
  308. package/src/dnd/draggable-sortable/use-draggable-sortable/index.tsx +50 -0
  309. package/src/dnd/draggable-sortable/use-draggable-sortable/types.ts +25 -0
  310. package/src/dnd/draggable-sortable/utils.ts +29 -0
  311. package/src/fields/array/array-field.module.css +48 -0
  312. package/src/fields/array/array-field.tsx +266 -0
  313. package/src/fields/blocks/blocks-field.module.css +148 -0
  314. package/src/fields/blocks/blocks-field.tsx +312 -0
  315. package/src/fields/checkbox/checkbox-field.tsx +53 -0
  316. package/src/fields/column-formatter.tsx +31 -0
  317. package/src/fields/date-time-formatter.tsx +22 -0
  318. package/src/fields/datetime/datetime-field.module.css +13 -0
  319. package/src/fields/datetime/datetime-field.tsx +54 -0
  320. package/src/fields/draggable-context-menu.module.css +127 -0
  321. package/src/fields/draggable-context-menu.tsx +85 -0
  322. package/src/fields/field-helpers.ts +66 -0
  323. package/src/fields/field-renderer.module.css +22 -0
  324. package/src/fields/field-renderer.tsx +255 -0
  325. package/src/fields/file/file-field.module.css +88 -0
  326. package/src/fields/file/file-field.tsx +107 -0
  327. package/src/fields/group/group-field.module.css +43 -0
  328. package/src/fields/group/group-field.tsx +84 -0
  329. package/src/fields/image/image-field.module.css +129 -0
  330. package/src/fields/image/image-field.tsx +212 -0
  331. package/src/fields/image/image-upload-field.module.css +123 -0
  332. package/src/fields/image/image-upload-field.tsx +270 -0
  333. package/src/fields/local-date-time.tsx +88 -0
  334. package/src/fields/locale-badge.module.css +37 -0
  335. package/src/fields/locale-badge.tsx +32 -0
  336. package/src/fields/numerical/numerical-field.tsx +112 -0
  337. package/src/fields/relation/relation-display.module.css +36 -0
  338. package/src/fields/relation/relation-display.tsx +130 -0
  339. package/src/fields/relation/relation-field.module.css +83 -0
  340. package/src/fields/relation/relation-field.tsx +202 -0
  341. package/src/fields/relation/relation-picker.module.css +168 -0
  342. package/src/fields/relation/relation-picker.tsx +325 -0
  343. package/src/fields/relation/relation-summary.module.css +55 -0
  344. package/src/fields/relation/relation-summary.tsx +123 -0
  345. package/src/fields/select/select-field.module.css +13 -0
  346. package/src/fields/select/select-field.tsx +56 -0
  347. package/src/fields/sortable-item.module.css +167 -0
  348. package/src/fields/sortable-item.tsx +101 -0
  349. package/src/fields/text/text-field.module.css +13 -0
  350. package/src/fields/text/text-field.tsx +146 -0
  351. package/src/fields/text-area/text-area-field.module.css +13 -0
  352. package/src/fields/text-area/text-area-field.tsx +147 -0
  353. package/src/fields/use-field-change-handler.ts +112 -0
  354. package/src/forms/document-actions.module.css +94 -0
  355. package/src/forms/document-actions.tsx +149 -0
  356. package/src/forms/form-context.tsx +620 -0
  357. package/src/forms/form-renderer.module.css +318 -0
  358. package/src/forms/form-renderer.tsx +786 -0
  359. package/src/forms/navigation-guard.tsx +98 -0
  360. package/src/forms/path-widget.module.css +41 -0
  361. package/src/forms/path-widget.test.tsx +217 -0
  362. package/src/forms/path-widget.tsx +141 -0
  363. package/src/forms/upload-executor.ts +190 -0
  364. package/src/react.ts +79 -0
  365. package/src/services/admin-services-context.tsx +35 -0
  366. package/src/services/admin-services-types.ts +177 -0
  367. package/src/services/field-services-context.tsx +35 -0
  368. package/src/services/field-services-types.ts +68 -0
package/src/react.ts ADDED
@@ -0,0 +1,79 @@
1
+ /**
2
+ * NOTE: We put a .js ending on imports here to satisfy
3
+ * TS / dist output
4
+ */
5
+
6
+ export * from './admin/components/admin-account/change-password.js'
7
+ export * from './admin/components/admin-account/container.js'
8
+ export * from './admin/components/admin-account/update.js'
9
+ export * from './admin/components/admin-permissions/inspector.js'
10
+ export * from './admin/components/admin-roles/create.js'
11
+ export * from './admin/components/admin-roles/permissions.js'
12
+ export * from './admin/components/admin-roles/update.js'
13
+ export * from './admin/components/admin-users/create.js'
14
+ export * from './admin/components/admin-users/roles.js'
15
+ export * from './admin/components/admin-users/set-password.js'
16
+ export * from './admin/components/admin-users/update.js'
17
+ export * from './admin/components/auth/sign-in-form.js'
18
+ export * from './admin/components/collections/diff-modal.js'
19
+ export * from './admin/components/collections/status-badge.js'
20
+ export * from './admin/group.js'
21
+ export * from './admin/row.js'
22
+ export * from './admin/tabs.js'
23
+ // Used for creating theme test pages in client applications
24
+ export * from './dnd/draggable-sortable/index.js'
25
+ export * from './fields/array/array-field.js'
26
+ export * from './fields/blocks/blocks-field.js'
27
+ export * from './fields/checkbox/checkbox-field.js'
28
+ export * from './fields/column-formatter.js'
29
+ export * from './fields/date-time-formatter.js'
30
+ export * from './fields/datetime/datetime-field.js'
31
+ export * from './fields/draggable-context-menu.js'
32
+ export * from './fields/field-helpers.js'
33
+ export * from './fields/field-renderer.js'
34
+ export * from './fields/file/file-field.js'
35
+ export * from './fields/group/group-field.js'
36
+ export * from './fields/image/image-field.js'
37
+ export * from './fields/image/image-upload-field.js'
38
+ export * from './fields/local-date-time.js'
39
+ export * from './fields/locale-badge.js'
40
+ export * from './fields/numerical/numerical-field.js'
41
+ export * from './fields/relation/relation-field.js'
42
+ export * from './fields/relation/relation-picker.js'
43
+ export * from './fields/select/select-field.js'
44
+ export * from './fields/sortable-item.js'
45
+ export * from './fields/text/text-field.js'
46
+ export * from './fields/text-area/text-area-field.js'
47
+ export * from './fields/use-field-change-handler.js'
48
+ export * from './forms/document-actions.js'
49
+ export * from './forms/form-context.js'
50
+ export * from './forms/form-renderer.js'
51
+ export * from './forms/navigation-guard.js'
52
+ export * from './forms/path-widget.js'
53
+ export * from './services/admin-services-context.js'
54
+ export * from './services/field-services-context.js'
55
+ export type {
56
+ AdminServiceCall,
57
+ BylineAdminServices,
58
+ ChangeAccountPasswordInput,
59
+ CreateAdminRoleInput,
60
+ CreateAdminUserInput,
61
+ SetAdminUserPasswordInput,
62
+ SetRoleAbilitiesInput,
63
+ SetUserRolesInput,
64
+ SignInInput,
65
+ SignInResult,
66
+ UpdateAccountInput,
67
+ UpdateAdminRoleInput,
68
+ UpdateAdminUserInput,
69
+ WhoHasAbilityInput,
70
+ } from './services/admin-services-types.js'
71
+ export type {
72
+ BylineFieldServices,
73
+ CollectionListDoc,
74
+ CollectionListParams,
75
+ CollectionListResponse,
76
+ GetCollectionDocumentsFn,
77
+ UploadedFileResult,
78
+ UploadFieldFn,
79
+ } from './services/field-services-types.js'
@@ -0,0 +1,35 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { createContext, type ReactNode, useContext } from 'react'
10
+
11
+ import type { BylineAdminServices } from './admin-services-types.js'
12
+
13
+ const AdminServicesContext = createContext<BylineAdminServices | null>(null)
14
+
15
+ interface BylineAdminServicesProviderProps {
16
+ services: BylineAdminServices
17
+ children: ReactNode
18
+ }
19
+
20
+ export const BylineAdminServicesProvider = ({
21
+ services,
22
+ children,
23
+ }: BylineAdminServicesProviderProps) => (
24
+ <AdminServicesContext.Provider value={services}>{children}</AdminServicesContext.Provider>
25
+ )
26
+
27
+ export const useBylineAdminServices = (): BylineAdminServices => {
28
+ const ctx = useContext(AdminServicesContext)
29
+ if (!ctx) {
30
+ throw new Error(
31
+ '@byline/ui: BylineAdminServicesProvider missing. Wrap your admin tree with <BylineAdminServicesProvider services={…} />.'
32
+ )
33
+ }
34
+ return ctx
35
+ }
@@ -0,0 +1,177 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ /**
10
+ * Framework-neutral function contracts that admin UI components in
11
+ * `@byline/ui` need from the host application. The host wires concrete
12
+ * implementations via `BylineAdminServicesProvider` — typically thin
13
+ * adapters around TanStack Start server functions, Next.js server
14
+ * actions, or any other RPC-style transport.
15
+ *
16
+ * The call shape `(args: { data: TInput }) => Promise<TOutput>` mirrors
17
+ * TanStack Start's `createServerFn().handler()` calling convention so a
18
+ * webapp host can pass its server fns through as-is. Other transports
19
+ * just need a tiny adapter.
20
+ *
21
+ * Scope: Phase 2.1 covers the framework-neutral admin UI components
22
+ * only — the 15 forms, modals, and inner widgets that don't touch
23
+ * TanStack Router. Page containers (list/edit/delete pages) keep using
24
+ * server fns directly today and move into `@byline/host-tanstack-start`
25
+ * in Phase 3 along with the route factories.
26
+ */
27
+
28
+ import type {
29
+ AccountResponse,
30
+ ChangeAccountPasswordRequest,
31
+ UpdateAccountRequest,
32
+ } from '@byline/admin/admin-account'
33
+ import type {
34
+ SetRoleAbilitiesResponse,
35
+ WhoHasAbilityResponse,
36
+ } from '@byline/admin/admin-permissions'
37
+ import type { AdminRoleResponse, UserRolesResponse } from '@byline/admin/admin-roles'
38
+ import type { AdminUserResponse } from '@byline/admin/admin-users'
39
+
40
+ /**
41
+ * The TanStack Start `createServerFn(...).handler(...)` calling shape:
42
+ * `fn({ data: input }) → Promise<output>`. Hosts using a different
43
+ * transport supply small adapters that match this shape.
44
+ */
45
+ export type AdminServiceCall<TInput, TOutput> = (args: { data: TInput }) => Promise<TOutput>
46
+
47
+ // --- Auth -----------------------------------------------------------------
48
+
49
+ export interface SignInInput {
50
+ email: string
51
+ password: string
52
+ }
53
+
54
+ /**
55
+ * The admin UI's sign-in form does not consume the `SignInResult`
56
+ * payload directly — on success it navigates via `window.location`. The
57
+ * shape is left as `unknown` here so each host's session provider can
58
+ * supply whatever envelope it produces without forcing a public type.
59
+ */
60
+ export type SignInResult = unknown
61
+
62
+ // --- Account self-service -------------------------------------------------
63
+
64
+ /** Same shape as `UpdateAccountRequest` from `@byline/admin/admin-account`. */
65
+ export type UpdateAccountInput = UpdateAccountRequest
66
+
67
+ /** Same shape as `ChangeAccountPasswordRequest` from `@byline/admin/admin-account`. */
68
+ export type ChangeAccountPasswordInput = ChangeAccountPasswordRequest
69
+
70
+ // --- Admin users ----------------------------------------------------------
71
+
72
+ export interface CreateAdminUserInput {
73
+ email: string
74
+ password: string
75
+ given_name?: string | null
76
+ family_name?: string | null
77
+ username?: string | null
78
+ is_super_admin: boolean
79
+ is_enabled: boolean
80
+ is_email_verified: boolean
81
+ }
82
+
83
+ export interface UpdateAdminUserInput {
84
+ id: string
85
+ vid: number
86
+ patch: {
87
+ email?: string
88
+ given_name?: string | null
89
+ family_name?: string | null
90
+ username?: string | null
91
+ is_super_admin?: boolean
92
+ is_enabled?: boolean
93
+ is_email_verified?: boolean
94
+ }
95
+ }
96
+
97
+ export interface SetAdminUserPasswordInput {
98
+ id: string
99
+ vid: number
100
+ password: string
101
+ }
102
+
103
+ export interface SetUserRolesInput {
104
+ userId: string
105
+ roleIds: string[]
106
+ }
107
+
108
+ // --- Admin roles ----------------------------------------------------------
109
+
110
+ export interface CreateAdminRoleInput {
111
+ name: string
112
+ machine_name: string
113
+ description: string | null
114
+ }
115
+
116
+ export interface UpdateAdminRoleInput {
117
+ id: string
118
+ vid: number
119
+ patch: {
120
+ name?: string
121
+ description?: string | null
122
+ }
123
+ }
124
+
125
+ // --- Permissions ----------------------------------------------------------
126
+
127
+ export interface SetRoleAbilitiesInput {
128
+ id: string
129
+ abilities: string[]
130
+ }
131
+
132
+ export interface WhoHasAbilityInput {
133
+ ability: string
134
+ }
135
+
136
+ // --- Service contract -----------------------------------------------------
137
+
138
+ export interface BylineAdminServices {
139
+ // Auth
140
+ adminSignIn: AdminServiceCall<SignInInput, SignInResult>
141
+
142
+ // Account self-service
143
+ updateAccount: AdminServiceCall<UpdateAccountInput, AccountResponse>
144
+ changeAccountPassword: AdminServiceCall<ChangeAccountPasswordInput, AccountResponse>
145
+
146
+ // Admin user writes (page-container reads stay in the host for now)
147
+ createAdminUser: AdminServiceCall<CreateAdminUserInput, AdminUserResponse>
148
+ updateAdminUser: AdminServiceCall<UpdateAdminUserInput, AdminUserResponse>
149
+ setAdminUserPassword: AdminServiceCall<SetAdminUserPasswordInput, AdminUserResponse>
150
+ setUserRoles: AdminServiceCall<SetUserRolesInput, UserRolesResponse>
151
+
152
+ // Admin role writes
153
+ createAdminRole: AdminServiceCall<CreateAdminRoleInput, AdminRoleResponse>
154
+ updateAdminRole: AdminServiceCall<UpdateAdminRoleInput, AdminRoleResponse>
155
+
156
+ // Permissions
157
+ setRoleAbilities: AdminServiceCall<SetRoleAbilitiesInput, SetRoleAbilitiesResponse>
158
+ whoHasAbility: AdminServiceCall<WhoHasAbilityInput, WhoHasAbilityResponse>
159
+
160
+ /**
161
+ * Diff helper. Loads a specific historical version of a document so
162
+ * the diff modal can compare it against the current version. Returns
163
+ * the same shape as the regular document loader — the diff modal
164
+ * consumes only `doc.fields` (or strips known meta keys when an
165
+ * older flat-shape doc is encountered).
166
+ *
167
+ * Positional-args shape rather than `{ data }` because this helper
168
+ * predates the contract and is consumed only by `DiffModal`. Hosts
169
+ * adapt their server fn into this call signature.
170
+ */
171
+ getCollectionDocumentVersion: (
172
+ collection: string,
173
+ documentId: string,
174
+ versionId: string,
175
+ locale: string | undefined
176
+ ) => Promise<Record<string, unknown>>
177
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ import { createContext, type ReactNode, useContext } from 'react'
10
+
11
+ import type { BylineFieldServices } from './field-services-types'
12
+
13
+ const FieldServicesContext = createContext<BylineFieldServices | null>(null)
14
+
15
+ interface BylineFieldServicesProviderProps {
16
+ services: BylineFieldServices
17
+ children: ReactNode
18
+ }
19
+
20
+ export const BylineFieldServicesProvider = ({
21
+ services,
22
+ children,
23
+ }: BylineFieldServicesProviderProps) => (
24
+ <FieldServicesContext.Provider value={services}>{children}</FieldServicesContext.Provider>
25
+ )
26
+
27
+ export const useBylineFieldServices = (): BylineFieldServices => {
28
+ const ctx = useContext(FieldServicesContext)
29
+ if (!ctx) {
30
+ throw new Error(
31
+ '@byline/ui: BylineFieldServicesProvider missing. Wrap your admin tree with <BylineFieldServicesProvider services={…} />.'
32
+ )
33
+ }
34
+ return ctx
35
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * This Source Code is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ *
6
+ * Copyright (c) Infonomic Company Limited
7
+ */
8
+
9
+ /**
10
+ * Framework-neutral function contracts that field/form components in
11
+ * `@byline/ui` need from the host application. The host wires concrete
12
+ * implementations via `BylineFieldServicesProvider` — typically thin
13
+ * adapters around TanStack Start server functions, Next.js server
14
+ * actions, or any other RPC-style transport.
15
+ */
16
+
17
+ import type { StoredFileValue } from '@byline/core'
18
+
19
+ export interface CollectionListParams {
20
+ page?: number
21
+ page_size?: number
22
+ order?: string
23
+ desc?: boolean
24
+ query?: string
25
+ locale?: string
26
+ status?: string
27
+ fields?: string[]
28
+ }
29
+
30
+ export interface CollectionListDoc {
31
+ id: string
32
+ path?: string
33
+ [field: string]: unknown
34
+ }
35
+
36
+ export interface CollectionListResponse {
37
+ docs: CollectionListDoc[]
38
+ meta: { totalPages?: number; [k: string]: unknown }
39
+ included: { collection: { id: string; [k: string]: unknown } }
40
+ }
41
+
42
+ export type GetCollectionDocumentsFn = (input: {
43
+ collection: string
44
+ params: CollectionListParams
45
+ }) => Promise<CollectionListResponse>
46
+
47
+ export interface UploadedFileResult {
48
+ documentId?: string
49
+ documentVersionId?: string
50
+ /**
51
+ * The persisted file value, including the `variants` array with
52
+ * `storagePath`, `storageUrl`, `width`, `height`, and `format` for each
53
+ * generated derivative. Single source of truth — the legacy top-level
54
+ * `variants: { name, url }[]` is gone.
55
+ */
56
+ storedFile: StoredFileValue
57
+ }
58
+
59
+ export type UploadFieldFn = (
60
+ collection: string,
61
+ formData: FormData,
62
+ createDocument?: boolean
63
+ ) => Promise<UploadedFileResult>
64
+
65
+ export interface BylineFieldServices {
66
+ getCollectionDocuments: GetCollectionDocumentsFn
67
+ uploadField: UploadFieldFn
68
+ }