@rebasepro/cms 0.0.1-canary.4d4fb3e

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 (746) hide show
  1. package/LICENSE +6 -0
  2. package/dist/CollectionEditorDialog-DiZYNmYV.js +4731 -0
  3. package/dist/CollectionEditorDialog-DiZYNmYV.js.map +1 -0
  4. package/dist/CollectionsStudioView-BHVTfAuK.js +224 -0
  5. package/dist/CollectionsStudioView-BHVTfAuK.js.map +1 -0
  6. package/dist/PropertyEditView-BC5GO9AI.js +7776 -0
  7. package/dist/PropertyEditView-BC5GO9AI.js.map +1 -0
  8. package/dist/collection_editor/CollectionEditorDialogsContext.d.ts +19 -0
  9. package/dist/collection_editor/ConfigControllerProvider.d.ts +45 -0
  10. package/dist/collection_editor/_cms_internals.d.ts +29 -0
  11. package/dist/collection_editor/api/generateCollectionApi.d.ts +77 -0
  12. package/dist/collection_editor/api/index.d.ts +1 -0
  13. package/dist/collection_editor/index.d.ts +16 -0
  14. package/dist/collection_editor/pgColumnToProperty.d.ts +6 -0
  15. package/dist/collection_editor/types/collection_editor_controller.d.ts +56 -0
  16. package/dist/collection_editor/types/collection_inference.d.ts +10 -0
  17. package/dist/collection_editor/types/config_controller.d.ts +91 -0
  18. package/dist/collection_editor/types/config_permissions.d.ts +19 -0
  19. package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +11 -0
  20. package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +10 -0
  21. package/dist/collection_editor/ui/EditorCollectionAction.d.ts +2 -0
  22. package/dist/collection_editor/ui/EditorCollectionActionStart.d.ts +2 -0
  23. package/dist/collection_editor/ui/EditorEntityAction.d.ts +2 -0
  24. package/dist/collection_editor/ui/HomePageEditorCollectionAction.d.ts +2 -0
  25. package/dist/collection_editor/ui/KanbanSetupAction.d.ts +10 -0
  26. package/dist/collection_editor/ui/MissingReferenceWidget.d.ts +3 -0
  27. package/dist/collection_editor/ui/NewCollectionButton.d.ts +1 -0
  28. package/dist/collection_editor/ui/NewCollectionCard.d.ts +2 -0
  29. package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +7 -0
  30. package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +36 -0
  31. package/dist/collection_editor/ui/collection_editor/AIModifiedPathsContext.d.ts +20 -0
  32. package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +11 -0
  33. package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +72 -0
  34. package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +19 -0
  35. package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +7 -0
  36. package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +17 -0
  37. package/dist/collection_editor/ui/collection_editor/CollectionRLSTab.d.ts +12 -0
  38. package/dist/collection_editor/ui/collection_editor/CollectionRelationsTab.d.ts +1 -0
  39. package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +5 -0
  40. package/dist/collection_editor/ui/collection_editor/CollectionYupValidation.d.ts +14 -0
  41. package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +5 -0
  42. package/dist/collection_editor/ui/collection_editor/DisplaySettingsForm.d.ts +3 -0
  43. package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +5 -0
  44. package/dist/collection_editor/ui/collection_editor/EntityActionsSelectDialog.d.ts +4 -0
  45. package/dist/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.d.ts +4 -0
  46. package/dist/collection_editor/ui/collection_editor/EnumForm.d.ts +12 -0
  47. package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +7 -0
  48. package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +6 -0
  49. package/dist/collection_editor/ui/collection_editor/KanbanConfigSection.d.ts +4 -0
  50. package/dist/collection_editor/ui/collection_editor/LayoutModeSwitch.d.ts +5 -0
  51. package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +47 -0
  52. package/dist/collection_editor/ui/collection_editor/PropertyFieldPreview.d.ts +16 -0
  53. package/dist/collection_editor/ui/collection_editor/PropertyTree.d.ts +31 -0
  54. package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +11 -0
  55. package/dist/collection_editor/ui/collection_editor/SwitchControl.d.ts +8 -0
  56. package/dist/collection_editor/ui/collection_editor/ViewModeSwitch.d.ts +6 -0
  57. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.d.ts +7 -0
  58. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.d.ts +13 -0
  59. package/dist/collection_editor/ui/collection_editor/import/clean_import_data.d.ts +7 -0
  60. package/dist/collection_editor/ui/collection_editor/properties/BlockPropertyField.d.ts +7 -0
  61. package/dist/collection_editor/ui/collection_editor/properties/BooleanPropertyField.d.ts +3 -0
  62. package/dist/collection_editor/ui/collection_editor/properties/CommonPropertyFields.d.ts +10 -0
  63. package/dist/collection_editor/ui/collection_editor/properties/DateTimePropertyField.d.ts +3 -0
  64. package/dist/collection_editor/ui/collection_editor/properties/EnumPropertyField.d.ts +9 -0
  65. package/dist/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.d.ts +3 -0
  66. package/dist/collection_editor/ui/collection_editor/properties/MapPropertyField.d.ts +7 -0
  67. package/dist/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.d.ts +4 -0
  68. package/dist/collection_editor/ui/collection_editor/properties/NumberPropertyField.d.ts +3 -0
  69. package/dist/collection_editor/ui/collection_editor/properties/ReferencePropertyField.d.ts +14 -0
  70. package/dist/collection_editor/ui/collection_editor/properties/RelationPropertyField.d.ts +15 -0
  71. package/dist/collection_editor/ui/collection_editor/properties/RepeatPropertyField.d.ts +9 -0
  72. package/dist/collection_editor/ui/collection_editor/properties/StoragePropertyField.d.ts +5 -0
  73. package/dist/collection_editor/ui/collection_editor/properties/StringPropertyField.d.ts +5 -0
  74. package/dist/collection_editor/ui/collection_editor/properties/UrlPropertyField.d.ts +4 -0
  75. package/dist/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.d.ts +3 -0
  76. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.d.ts +10 -0
  77. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.d.ts +3 -0
  78. package/dist/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.d.ts +6 -0
  79. package/dist/collection_editor/ui/collection_editor/properties/conditions/index.d.ts +6 -0
  80. package/dist/collection_editor/ui/collection_editor/properties/conditions/property_paths.d.ts +19 -0
  81. package/dist/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.d.ts +5 -0
  82. package/dist/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.d.ts +4 -0
  83. package/dist/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.d.ts +3 -0
  84. package/dist/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.d.ts +11 -0
  85. package/dist/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.d.ts +3 -0
  86. package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +2 -0
  87. package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +2 -0
  88. package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +2 -0
  89. package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +2 -0
  90. package/dist/collection_editor/ui/collection_editor/util.d.ts +5 -0
  91. package/dist/collection_editor/ui/collection_editor/utils/strings.d.ts +1 -0
  92. package/dist/collection_editor/ui/collection_editor/utils/supported_fields.d.ts +3 -0
  93. package/dist/collection_editor/ui/collection_editor/utils/update_property_for_widget.d.ts +2 -0
  94. package/dist/collection_editor/useCollectionEditorController.d.ts +6 -0
  95. package/dist/collection_editor/useCollectionsConfigController.d.ts +6 -0
  96. package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +6 -0
  97. package/dist/collection_editor/validateCollectionJson.d.ts +22 -0
  98. package/dist/collection_editor_ui.d.ts +8 -0
  99. package/dist/collection_editor_ui.js +11 -0
  100. package/dist/collection_editor_ui.js.map +1 -0
  101. package/dist/components/AdminModeSyncer.d.ts +17 -0
  102. package/dist/components/ArrayContainer.d.ts +59 -0
  103. package/dist/components/ClearFilterSortButton.d.ts +5 -0
  104. package/dist/components/CollectionEditorDialogs.d.ts +15 -0
  105. package/dist/components/DefaultAppBar.d.ts +29 -0
  106. package/dist/components/DefaultDrawer.d.ts +29 -0
  107. package/dist/components/DeleteEntityDialog.d.ts +13 -0
  108. package/dist/components/DrawerNavigationGroup.d.ts +49 -0
  109. package/dist/components/DrawerNavigationItem.d.ts +10 -0
  110. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +39 -0
  111. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +27 -0
  112. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +129 -0
  113. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +26 -0
  114. package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -0
  115. package/dist/components/EntityCollectionTable/fields/TableMultipleRelationField.d.ts +21 -0
  116. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +22 -0
  117. package/dist/components/EntityCollectionTable/fields/TableRelationField.d.ts +22 -0
  118. package/dist/components/EntityCollectionTable/fields/TableRelationSelectorField.d.ts +20 -0
  119. package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +35 -0
  120. package/dist/components/EntityCollectionTable/fields/VirtualTableDateField.d.ts +12 -0
  121. package/dist/components/EntityCollectionTable/fields/VirtualTableInput.d.ts +9 -0
  122. package/dist/components/EntityCollectionTable/fields/VirtualTableNumberInput.d.ts +8 -0
  123. package/dist/components/EntityCollectionTable/fields/VirtualTableSelect.d.ts +15 -0
  124. package/dist/components/EntityCollectionTable/fields/VirtualTableSwitch.d.ts +7 -0
  125. package/dist/components/EntityCollectionTable/fields/VirtualTableUserSelect.d.ts +12 -0
  126. package/dist/components/EntityCollectionTable/index.d.ts +6 -0
  127. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +14 -0
  128. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +32 -0
  129. package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
  130. package/dist/components/EntityCollectionTable/internal/common.d.ts +5 -0
  131. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +27 -0
  132. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
  133. package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
  134. package/dist/components/EntityCollectionTable/table_bindings.d.ts +28 -0
  135. package/dist/components/EntityCollectionView/Board.d.ts +2 -0
  136. package/dist/components/EntityCollectionView/BoardColumn.d.ts +42 -0
  137. package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +9 -0
  138. package/dist/components/EntityCollectionView/BoardSortableList.d.ts +14 -0
  139. package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +27 -0
  140. package/dist/components/EntityCollectionView/EntityCard.d.ts +20 -0
  141. package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +21 -0
  142. package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +32 -0
  143. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +54 -0
  144. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +15 -0
  145. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +17 -0
  146. package/dist/components/EntityCollectionView/FiltersDialog.d.ts +15 -0
  147. package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +44 -0
  148. package/dist/components/EntityCollectionView/board_types.d.ts +105 -0
  149. package/dist/components/EntityCollectionView/hooks/useCollectionInlineEditor.d.ts +12 -0
  150. package/dist/components/EntityCollectionView/hooks/useKanbanDragAndDrop.d.ts +20 -0
  151. package/dist/components/EntityCollectionView/useBoardDataController.d.ts +61 -0
  152. package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
  153. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  154. package/dist/components/EntityEditView.d.ts +48 -0
  155. package/dist/components/EntityEditViewFormActions.d.ts +2 -0
  156. package/dist/components/EntityJsonPreview.d.ts +3 -0
  157. package/dist/components/EntityPreview.d.ts +56 -0
  158. package/dist/components/EntitySidePanel.d.ts +10 -0
  159. package/dist/components/EntityView.d.ts +12 -0
  160. package/dist/components/FieldCaption.d.ts +5 -0
  161. package/dist/components/HomePage/ContentHomePage.d.ts +11 -0
  162. package/dist/components/HomePage/FavouritesView.d.ts +3 -0
  163. package/dist/components/HomePage/HomePageDnD.d.ts +77 -0
  164. package/dist/components/HomePage/NavigationCard.d.ts +10 -0
  165. package/dist/components/HomePage/NavigationCardBinding.d.ts +18 -0
  166. package/dist/components/HomePage/NavigationGroup.d.ts +11 -0
  167. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  168. package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
  169. package/dist/components/HomePage/index.d.ts +4 -0
  170. package/dist/components/PropertyCollectionView.d.ts +24 -0
  171. package/dist/components/PropertyConfigBadge.d.ts +6 -0
  172. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  173. package/dist/components/RebaseAuthGate.d.ts +21 -0
  174. package/dist/components/RebaseCMS.d.ts +10 -0
  175. package/dist/components/RebaseLayout.d.ts +32 -0
  176. package/dist/components/RebaseNavigation.d.ts +24 -0
  177. package/dist/components/RebaseRouteDefs.d.ts +30 -0
  178. package/dist/components/RebaseShell.d.ts +25 -0
  179. package/dist/components/ReferenceTable/EntitySelectionTable.d.ts +59 -0
  180. package/dist/components/ReferenceWidget.d.ts +30 -0
  181. package/dist/components/RelationSelector.d.ts +32 -0
  182. package/dist/components/SearchIconsView.d.ts +5 -0
  183. package/dist/components/SelectableTable/SelectableTable.d.ts +89 -0
  184. package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
  185. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +9 -0
  186. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +12 -0
  187. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +15 -0
  188. package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +12 -0
  189. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +13 -0
  190. package/dist/components/SideDialogs.d.ts +25 -0
  191. package/dist/components/SideEntityProvider.d.ts +32 -0
  192. package/dist/components/admin/RoleChip.d.ts +4 -0
  193. package/dist/components/admin/RolesView.d.ts +4 -0
  194. package/dist/components/admin/UsersView.d.ts +4 -0
  195. package/dist/components/admin/index.d.ts +3 -0
  196. package/dist/components/app/AppBar.d.ts +12 -0
  197. package/dist/components/app/Drawer.d.ts +19 -0
  198. package/dist/components/app/Scaffold.d.ts +34 -0
  199. package/dist/components/app/index.d.ts +4 -0
  200. package/dist/components/app/useApp.d.ts +17 -0
  201. package/dist/components/common/default_entity_actions.d.ts +4 -0
  202. package/dist/components/common/index.d.ts +1 -0
  203. package/dist/components/field_configs.d.ts +7 -0
  204. package/dist/components/history/EntityHistoryEntry.d.ts +17 -0
  205. package/dist/components/history/EntityHistoryView.d.ts +6 -0
  206. package/dist/components/history/LastEditedByFormAction.d.ts +6 -0
  207. package/dist/components/history/LastEditedByIndicator.d.ts +10 -0
  208. package/dist/components/history/UserChip.d.ts +4 -0
  209. package/dist/components/history/index.d.ts +5 -0
  210. package/dist/components/index.d.ts +42 -0
  211. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  212. package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
  213. package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
  214. package/dist/data_export/export/BasicExportAction.d.ts +7 -0
  215. package/dist/data_export/export/ExportCollectionAction.d.ts +11 -0
  216. package/dist/data_export/export/export.d.ts +22 -0
  217. package/dist/data_export/export/index.d.ts +3 -0
  218. package/dist/data_export/index.d.ts +1 -0
  219. package/dist/data_import/components/DataNewPropertiesMapping.d.ts +13 -0
  220. package/dist/data_import/components/ImportFileUpload.d.ts +3 -0
  221. package/dist/data_import/components/ImportNewPropertyFieldPreview.d.ts +9 -0
  222. package/dist/data_import/components/ImportSaveInProgress.d.ts +8 -0
  223. package/dist/data_import/components/index.d.ts +4 -0
  224. package/dist/data_import/hooks/index.d.ts +1 -0
  225. package/dist/data_import/hooks/useImportConfig.d.ts +2 -0
  226. package/dist/data_import/import/ImportCollectionAction.d.ts +15 -0
  227. package/dist/data_import/import/index.d.ts +1 -0
  228. package/dist/data_import/index.d.ts +5 -0
  229. package/dist/data_import/types/column_mapping.d.ts +20 -0
  230. package/dist/data_import/types/index.d.ts +1 -0
  231. package/dist/data_import/utils/data.d.ts +4 -0
  232. package/dist/data_import/utils/file_headers.d.ts +1 -0
  233. package/dist/data_import/utils/file_to_json.d.ts +16 -0
  234. package/dist/data_import/utils/get_import_inference_type.d.ts +2 -0
  235. package/dist/data_import/utils/get_properties_mapping.d.ts +1 -0
  236. package/dist/data_import/utils/index.d.ts +3 -0
  237. package/dist/editor/components/SlashCommandMenu.d.ts +6 -0
  238. package/dist/editor/components/editor-bubble-item.d.ts +8 -0
  239. package/dist/editor/components/editor-bubble.d.ts +8 -0
  240. package/dist/editor/components/image-bubble.d.ts +5 -0
  241. package/dist/editor/components/index.d.ts +16 -0
  242. package/dist/editor/components/table-bubble.d.ts +5 -0
  243. package/dist/editor/editor.d.ts +30 -0
  244. package/dist/editor/extensions/HighlightDecorationExtension.d.ts +24 -0
  245. package/dist/editor/extensions/Image/index.d.ts +6 -0
  246. package/dist/editor/extensions/Image.d.ts +6 -0
  247. package/dist/editor/extensions/TextLoadingDecorationExtension.d.ts +16 -0
  248. package/dist/editor/extensions/clipboard.d.ts +7 -0
  249. package/dist/editor/extensions/custom-keymap.d.ts +1 -0
  250. package/dist/editor/extensions/drag-and-drop.d.ts +9 -0
  251. package/dist/editor/hooks/useProseMirror.d.ts +13 -0
  252. package/dist/editor/hooks/useProseMirrorContext.d.ts +9 -0
  253. package/dist/editor/index.d.ts +2 -0
  254. package/dist/editor/markdown.d.ts +5 -0
  255. package/dist/editor/nodeViews/ImageComponent.d.ts +3 -0
  256. package/dist/editor/nodeViews/ReactNodeView.d.ts +29 -0
  257. package/dist/editor/nodeViews/TaskItemComponent.d.ts +3 -0
  258. package/dist/editor/nodeViews/index.d.ts +6 -0
  259. package/dist/editor/plugins/index.d.ts +2 -0
  260. package/dist/editor/plugins/inputrules.d.ts +6 -0
  261. package/dist/editor/plugins/placeholderPlugin.d.ts +3 -0
  262. package/dist/editor/plugins/slashCommandPlugin.d.ts +12 -0
  263. package/dist/editor/schema.d.ts +2 -0
  264. package/dist/editor/selectors/ai-selector.d.ts +0 -0
  265. package/dist/editor/selectors/color-selector.d.ts +10 -0
  266. package/dist/editor/selectors/link-selector.d.ts +8 -0
  267. package/dist/editor/selectors/node-selector.d.ts +15 -0
  268. package/dist/editor/selectors/text-buttons.d.ts +1 -0
  269. package/dist/editor/types.d.ts +5 -0
  270. package/dist/editor/useProseMirror.d.ts +16 -0
  271. package/dist/editor/utils/prosemirror-utils.d.ts +7 -0
  272. package/dist/editor/utils/remove_classes.d.ts +1 -0
  273. package/dist/editor/utils/useDebouncedCallback.d.ts +1 -0
  274. package/dist/form/EntityForm.d.ts +10 -0
  275. package/dist/form/EntityFormActions.d.ts +2 -0
  276. package/dist/form/PropertyFieldBinding.d.ts +30 -0
  277. package/dist/form/components/ErrorFocus.d.ts +4 -0
  278. package/dist/form/components/FieldHelperText.d.ts +12 -0
  279. package/dist/form/components/FormEntry.d.ts +6 -0
  280. package/dist/form/components/FormLayout.d.ts +5 -0
  281. package/dist/form/components/LabelWithIcon.d.ts +14 -0
  282. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  283. package/dist/form/components/LocalChangesMenu.d.ts +11 -0
  284. package/dist/form/components/StorageItemPreview.d.ts +14 -0
  285. package/dist/form/components/StorageUploadProgress.d.ts +10 -0
  286. package/dist/form/components/index.d.ts +5 -0
  287. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +10 -0
  288. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +13 -0
  289. package/dist/form/field_bindings/BlockFieldBinding.d.ts +11 -0
  290. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +12 -0
  291. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +8 -0
  292. package/dist/form/field_bindings/MapFieldBinding.d.ts +10 -0
  293. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +12 -0
  294. package/dist/form/field_bindings/MultiSelectFieldBinding.d.ts +10 -0
  295. package/dist/form/field_bindings/MultipleRelationFieldBinding.d.ts +10 -0
  296. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +11 -0
  297. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +10 -0
  298. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +10 -0
  299. package/dist/form/field_bindings/RelationFieldBinding.d.ts +3 -0
  300. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +11 -0
  301. package/dist/form/field_bindings/SelectFieldBinding.d.ts +11 -0
  302. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +21 -0
  303. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +10 -0
  304. package/dist/form/field_bindings/TextFieldBinding.d.ts +9 -0
  305. package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +13 -0
  306. package/dist/form/index.d.ts +20 -0
  307. package/dist/form/useClearRestoreValue.d.ts +13 -0
  308. package/dist/form/validation.d.ts +21 -0
  309. package/dist/hooks/index.d.ts +15 -0
  310. package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +5 -0
  311. package/dist/hooks/navigation/contexts/NavigationStateContext.d.ts +4 -0
  312. package/dist/hooks/navigation/contexts/UrlContext.d.ts +4 -0
  313. package/dist/hooks/navigation/contexts/index.d.ts +3 -0
  314. package/dist/hooks/navigation/useBuildCollectionRegistryController.d.ts +7 -0
  315. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +34 -0
  316. package/dist/hooks/navigation/useBuildUrlController.d.ts +7 -0
  317. package/dist/hooks/navigation/useNavigationRegistry.d.ts +11 -0
  318. package/dist/hooks/navigation/useNavigationResolution.d.ts +7 -0
  319. package/dist/hooks/navigation/useNavigationURLs.d.ts +11 -0
  320. package/dist/hooks/navigation/useResolvedCollections.d.ts +28 -0
  321. package/dist/hooks/navigation/useResolvedViews.d.ts +29 -0
  322. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +27 -0
  323. package/dist/hooks/navigation/utils.d.ts +12 -0
  324. package/dist/hooks/useBreadcrumbsController.d.ts +42 -0
  325. package/dist/hooks/useBuildSideDialogsController.d.ts +2 -0
  326. package/dist/hooks/useBuildSideEntityController.d.ts +6 -0
  327. package/dist/hooks/useCMSContext.d.ts +27 -0
  328. package/dist/hooks/useEntityHistory.d.ts +30 -0
  329. package/dist/hooks/useEntitySelectionDialog.d.ts +18 -0
  330. package/dist/hooks/useResolvedNavigationFrom.d.ts +73 -0
  331. package/dist/hooks/useSideDialogsController.d.ts +19 -0
  332. package/dist/hooks/useSideEntityController.d.ts +11 -0
  333. package/dist/index.d.ts +12 -0
  334. package/dist/index.js +2885 -0
  335. package/dist/index.js.map +1 -0
  336. package/dist/preview/PropertyPreview.d.ts +7 -0
  337. package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
  338. package/dist/preview/components/BooleanPreview.d.ts +11 -0
  339. package/dist/preview/components/DatePreview.d.ts +17 -0
  340. package/dist/preview/components/EmptyValue.d.ts +6 -0
  341. package/dist/preview/components/EnumValuesChip.d.ts +13 -0
  342. package/dist/preview/components/ImagePreview.d.ts +16 -0
  343. package/dist/preview/components/ReferencePreview.d.ts +17 -0
  344. package/dist/preview/components/RelationPreview.d.ts +17 -0
  345. package/dist/preview/components/StorageThumbnail.d.ts +15 -0
  346. package/dist/preview/components/UrlComponentPreview.d.ts +14 -0
  347. package/dist/preview/components/UserPreview.d.ts +9 -0
  348. package/dist/preview/index.d.ts +23 -0
  349. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +6 -0
  350. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +6 -0
  351. package/dist/preview/property_previews/ArrayOfRelationsPreview.d.ts +6 -0
  352. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +6 -0
  353. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +6 -0
  354. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +6 -0
  355. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +6 -0
  356. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +6 -0
  357. package/dist/preview/property_previews/MapPropertyPreview.d.ts +9 -0
  358. package/dist/preview/property_previews/NumberPropertyPreview.d.ts +7 -0
  359. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
  360. package/dist/preview/property_previews/StringPropertyPreview.d.ts +7 -0
  361. package/dist/preview/util.d.ts +7 -0
  362. package/dist/routes/CustomViewRoute.d.ts +4 -0
  363. package/dist/routes/RebaseRoute.d.ts +1 -0
  364. package/dist/routes/index.d.ts +2 -0
  365. package/dist/types/components/EntityFormActionsProps.d.ts +19 -0
  366. package/dist/types/components/EntityFormProps.d.ts +48 -0
  367. package/dist/types/components/PropertyPreviewProps.d.ts +47 -0
  368. package/dist/types/components/formex.d.ts +40 -0
  369. package/dist/types/components/index.d.ts +3 -0
  370. package/dist/types/fields.d.ts +221 -0
  371. package/dist/types/index.d.ts +2 -0
  372. package/dist/util/entity_actions.d.ts +2 -0
  373. package/dist/util/index.d.ts +5 -0
  374. package/dist/util/navigation_utils.d.ts +32 -0
  375. package/dist/util/previews.d.ts +4 -0
  376. package/dist/util/property_utils.d.ts +24 -0
  377. package/dist/util/resolutions.d.ts +9 -0
  378. package/dist/util-W5Lh0Emr.js +32604 -0
  379. package/dist/util-W5Lh0Emr.js.map +1 -0
  380. package/package.json +170 -0
  381. package/src/collection_editor/CollectionEditorDialogsContext.tsx +25 -0
  382. package/src/collection_editor/ConfigControllerProvider.tsx +405 -0
  383. package/src/collection_editor/_cms_internals.ts +41 -0
  384. package/src/collection_editor/api/generateCollectionApi.ts +125 -0
  385. package/src/collection_editor/api/index.ts +1 -0
  386. package/src/collection_editor/index.ts +63 -0
  387. package/src/collection_editor/pgColumnToProperty.ts +274 -0
  388. package/src/collection_editor/types/collection_editor_controller.tsx +64 -0
  389. package/src/collection_editor/types/collection_inference.ts +17 -0
  390. package/src/collection_editor/types/config_controller.tsx +109 -0
  391. package/src/collection_editor/types/config_permissions.ts +20 -0
  392. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +195 -0
  393. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +49 -0
  394. package/src/collection_editor/ui/EditorCollectionAction.tsx +57 -0
  395. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +92 -0
  396. package/src/collection_editor/ui/EditorEntityAction.tsx +53 -0
  397. package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +119 -0
  398. package/src/collection_editor/ui/KanbanSetupAction.tsx +40 -0
  399. package/src/collection_editor/ui/MissingReferenceWidget.tsx +40 -0
  400. package/src/collection_editor/ui/NewCollectionButton.tsx +26 -0
  401. package/src/collection_editor/ui/NewCollectionCard.tsx +52 -0
  402. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +52 -0
  403. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +253 -0
  404. package/src/collection_editor/ui/collection_editor/AIModifiedPathsContext.tsx +88 -0
  405. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +437 -0
  406. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +991 -0
  407. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +291 -0
  408. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +171 -0
  409. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +600 -0
  410. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +331 -0
  411. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +224 -0
  412. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +103 -0
  413. package/src/collection_editor/ui/collection_editor/CollectionYupValidation.tsx +9 -0
  414. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +137 -0
  415. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +312 -0
  416. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +164 -0
  417. package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +40 -0
  418. package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +39 -0
  419. package/src/collection_editor/ui/collection_editor/EnumForm.tsx +370 -0
  420. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +277 -0
  421. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +142 -0
  422. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +195 -0
  423. package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +35 -0
  424. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +790 -0
  425. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +159 -0
  426. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +360 -0
  427. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +255 -0
  428. package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +39 -0
  429. package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +41 -0
  430. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +66 -0
  431. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +296 -0
  432. package/src/collection_editor/ui/collection_editor/import/clean_import_data.ts +54 -0
  433. package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +146 -0
  434. package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +41 -0
  435. package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +111 -0
  436. package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +205 -0
  437. package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +124 -0
  438. package/src/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.tsx +20 -0
  439. package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +150 -0
  440. package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +215 -0
  441. package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +115 -0
  442. package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +162 -0
  443. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +344 -0
  444. package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +106 -0
  445. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +366 -0
  446. package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +146 -0
  447. package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +90 -0
  448. package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +47 -0
  449. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +853 -0
  450. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +28 -0
  451. package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +593 -0
  452. package/src/collection_editor/ui/collection_editor/properties/conditions/index.ts +6 -0
  453. package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +93 -0
  454. package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +50 -0
  455. package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +61 -0
  456. package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +115 -0
  457. package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +152 -0
  458. package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +28 -0
  459. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +112 -0
  460. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +183 -0
  461. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +88 -0
  462. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +42 -0
  463. package/src/collection_editor/ui/collection_editor/util.ts +28 -0
  464. package/src/collection_editor/ui/collection_editor/utils/strings.ts +16 -0
  465. package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +33 -0
  466. package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +281 -0
  467. package/src/collection_editor/useCollectionEditorController.tsx +9 -0
  468. package/src/collection_editor/useCollectionsConfigController.tsx +9 -0
  469. package/src/collection_editor/useLocalCollectionsConfigController.tsx +111 -0
  470. package/src/collection_editor/validateCollectionJson.ts +379 -0
  471. package/src/collection_editor_ui.ts +15 -0
  472. package/src/components/AdminModeSyncer.tsx +56 -0
  473. package/src/components/ArrayContainer.tsx +551 -0
  474. package/src/components/ClearFilterSortButton.tsx +47 -0
  475. package/src/components/CollectionEditorDialogs.tsx +68 -0
  476. package/src/components/DefaultAppBar.tsx +280 -0
  477. package/src/components/DefaultDrawer.tsx +276 -0
  478. package/src/components/DeleteEntityDialog.tsx +182 -0
  479. package/src/components/DrawerNavigationGroup.tsx +128 -0
  480. package/src/components/DrawerNavigationItem.tsx +65 -0
  481. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +232 -0
  482. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +380 -0
  483. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +171 -0
  484. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +342 -0
  485. package/src/components/EntityCollectionTable/column_utils.tsx +75 -0
  486. package/src/components/EntityCollectionTable/fields/TableMultipleRelationField.tsx +130 -0
  487. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +172 -0
  488. package/src/components/EntityCollectionTable/fields/TableRelationField.tsx +181 -0
  489. package/src/components/EntityCollectionTable/fields/TableRelationSelectorField.tsx +42 -0
  490. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +320 -0
  491. package/src/components/EntityCollectionTable/fields/VirtualTableDateField.tsx +39 -0
  492. package/src/components/EntityCollectionTable/fields/VirtualTableInput.tsx +90 -0
  493. package/src/components/EntityCollectionTable/fields/VirtualTableNumberInput.tsx +80 -0
  494. package/src/components/EntityCollectionTable/fields/VirtualTableSelect.tsx +133 -0
  495. package/src/components/EntityCollectionTable/fields/VirtualTableSwitch.tsx +32 -0
  496. package/src/components/EntityCollectionTable/fields/VirtualTableUserSelect.tsx +112 -0
  497. package/src/components/EntityCollectionTable/index.tsx +14 -0
  498. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +72 -0
  499. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +311 -0
  500. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +82 -0
  501. package/src/components/EntityCollectionTable/internal/common.tsx +73 -0
  502. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +418 -0
  503. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +96 -0
  504. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
  505. package/src/components/EntityCollectionTable/table_bindings.tsx +345 -0
  506. package/src/components/EntityCollectionView/Board.tsx +324 -0
  507. package/src/components/EntityCollectionView/BoardColumn.tsx +158 -0
  508. package/src/components/EntityCollectionView/BoardColumnTitle.tsx +45 -0
  509. package/src/components/EntityCollectionView/BoardSortableList.tsx +172 -0
  510. package/src/components/EntityCollectionView/EntityBoardCard.tsx +204 -0
  511. package/src/components/EntityCollectionView/EntityCard.tsx +219 -0
  512. package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +609 -0
  513. package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +249 -0
  514. package/src/components/EntityCollectionView/EntityCollectionView.tsx +1143 -0
  515. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +149 -0
  516. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +122 -0
  517. package/src/components/EntityCollectionView/FiltersDialog.tsx +249 -0
  518. package/src/components/EntityCollectionView/ViewModeToggle.tsx +197 -0
  519. package/src/components/EntityCollectionView/board_types.ts +113 -0
  520. package/src/components/EntityCollectionView/hooks/useCollectionInlineEditor.ts +79 -0
  521. package/src/components/EntityCollectionView/hooks/useKanbanDragAndDrop.ts +151 -0
  522. package/src/components/EntityCollectionView/useBoardDataController.tsx +510 -0
  523. package/src/components/EntityCollectionView/useSelectionController.tsx +43 -0
  524. package/src/components/EntityCollectionView/utils.ts +19 -0
  525. package/src/components/EntityEditView.tsx +576 -0
  526. package/src/components/EntityEditViewFormActions.tsx +345 -0
  527. package/src/components/EntityJsonPreview.tsx +66 -0
  528. package/src/components/EntityPreview.tsx +366 -0
  529. package/src/components/EntitySidePanel.tsx +159 -0
  530. package/src/components/EntityView.tsx +69 -0
  531. package/src/components/FieldCaption.tsx +14 -0
  532. package/src/components/HomePage/ContentHomePage.tsx +553 -0
  533. package/src/components/HomePage/FavouritesView.tsx +60 -0
  534. package/src/components/HomePage/HomePageDnD.tsx +703 -0
  535. package/src/components/HomePage/NavigationCard.tsx +79 -0
  536. package/src/components/HomePage/NavigationCardBinding.tsx +110 -0
  537. package/src/components/HomePage/NavigationGroup.tsx +156 -0
  538. package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
  539. package/src/components/HomePage/SmallNavigationCard.tsx +45 -0
  540. package/src/components/HomePage/index.tsx +5 -0
  541. package/src/components/PropertyCollectionView.tsx +335 -0
  542. package/src/components/PropertyConfigBadge.tsx +27 -0
  543. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  544. package/src/components/RebaseAuthGate.tsx +42 -0
  545. package/src/components/RebaseCMS.tsx +22 -0
  546. package/src/components/RebaseLayout.tsx +73 -0
  547. package/src/components/RebaseNavigation.tsx +197 -0
  548. package/src/components/RebaseRouteDefs.tsx +127 -0
  549. package/src/components/RebaseShell.tsx +70 -0
  550. package/src/components/ReferenceTable/EntitySelectionTable.tsx +358 -0
  551. package/src/components/ReferenceWidget.tsx +155 -0
  552. package/src/components/RelationSelector.tsx +612 -0
  553. package/src/components/SearchIconsView.tsx +80 -0
  554. package/src/components/SelectableTable/SelectableTable.tsx +340 -0
  555. package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
  556. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +51 -0
  557. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +125 -0
  558. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +208 -0
  559. package/src/components/SelectableTable/filters/RelationFilterField.tsx +138 -0
  560. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +224 -0
  561. package/src/components/SideDialogs.tsx +207 -0
  562. package/src/components/SideEntityProvider.tsx +76 -0
  563. package/src/components/admin/RoleChip.tsx +23 -0
  564. package/src/components/admin/RolesView.tsx +424 -0
  565. package/src/components/admin/UsersView.tsx +707 -0
  566. package/src/components/admin/index.ts +3 -0
  567. package/src/components/app/AppBar.tsx +17 -0
  568. package/src/components/app/Drawer.tsx +30 -0
  569. package/src/components/app/Scaffold.tsx +239 -0
  570. package/src/components/app/index.ts +4 -0
  571. package/src/components/app/useApp.tsx +36 -0
  572. package/src/components/common/default_entity_actions.tsx +155 -0
  573. package/src/components/common/index.ts +1 -0
  574. package/src/components/field_configs.tsx +442 -0
  575. package/src/components/history/EntityHistoryEntry.tsx +175 -0
  576. package/src/components/history/EntityHistoryView.tsx +197 -0
  577. package/src/components/history/LastEditedByFormAction.tsx +24 -0
  578. package/src/components/history/LastEditedByIndicator.tsx +98 -0
  579. package/src/components/history/UserChip.tsx +15 -0
  580. package/src/components/history/index.tsx +5 -0
  581. package/src/components/index.ts +52 -0
  582. package/src/contexts/BreacrumbsContext.tsx +45 -0
  583. package/src/contexts/SideDialogsControllerContext.tsx +5 -0
  584. package/src/contexts/SideEntityControllerContext.tsx +5 -0
  585. package/src/data_export/export/BasicExportAction.tsx +152 -0
  586. package/src/data_export/export/ExportCollectionAction.tsx +275 -0
  587. package/src/data_export/export/export.ts +244 -0
  588. package/src/data_export/export/index.ts +3 -0
  589. package/src/data_export/index.ts +1 -0
  590. package/src/data_import/components/DataNewPropertiesMapping.tsx +243 -0
  591. package/src/data_import/components/ImportFileUpload.tsx +42 -0
  592. package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +59 -0
  593. package/src/data_import/components/ImportSaveInProgress.tsx +121 -0
  594. package/src/data_import/components/index.ts +4 -0
  595. package/src/data_import/hooks/index.ts +1 -0
  596. package/src/data_import/hooks/useImportConfig.tsx +34 -0
  597. package/src/data_import/import/ImportCollectionAction.tsx +448 -0
  598. package/src/data_import/import/index.ts +1 -0
  599. package/src/data_import/index.ts +5 -0
  600. package/src/data_import/types/column_mapping.ts +32 -0
  601. package/src/data_import/types/index.ts +1 -0
  602. package/src/data_import/utils/data.ts +145 -0
  603. package/src/data_import/utils/file_headers.ts +90 -0
  604. package/src/data_import/utils/file_to_json.ts +106 -0
  605. package/src/data_import/utils/get_import_inference_type.ts +27 -0
  606. package/src/data_import/utils/get_properties_mapping.ts +67 -0
  607. package/src/data_import/utils/index.ts +3 -0
  608. package/src/editor/components/SlashCommandMenu.tsx +516 -0
  609. package/src/editor/components/editor-bubble-item.tsx +32 -0
  610. package/src/editor/components/editor-bubble.tsx +118 -0
  611. package/src/editor/components/image-bubble.tsx +158 -0
  612. package/src/editor/components/index.ts +14 -0
  613. package/src/editor/components/table-bubble.tsx +167 -0
  614. package/src/editor/editor.tsx +455 -0
  615. package/src/editor/extensions/HighlightDecorationExtension.ts +114 -0
  616. package/src/editor/extensions/Image/index.ts +133 -0
  617. package/src/editor/extensions/Image.ts +159 -0
  618. package/src/editor/extensions/TextLoadingDecorationExtension.tsx +107 -0
  619. package/src/editor/extensions/clipboard.ts +72 -0
  620. package/src/editor/extensions/custom-keymap.ts +25 -0
  621. package/src/editor/extensions/drag-and-drop.tsx +492 -0
  622. package/src/editor/hooks/useProseMirror.ts +124 -0
  623. package/src/editor/hooks/useProseMirrorContext.ts +15 -0
  624. package/src/editor/index.ts +2 -0
  625. package/src/editor/markdown.ts +172 -0
  626. package/src/editor/nodeViews/ImageComponent.tsx +20 -0
  627. package/src/editor/nodeViews/ReactNodeView.tsx +89 -0
  628. package/src/editor/nodeViews/TaskItemComponent.tsx +29 -0
  629. package/src/editor/nodeViews/index.ts +35 -0
  630. package/src/editor/plugins/index.ts +58 -0
  631. package/src/editor/plugins/inputrules.ts +82 -0
  632. package/src/editor/plugins/placeholderPlugin.ts +55 -0
  633. package/src/editor/plugins/slashCommandPlugin.ts +61 -0
  634. package/src/editor/schema.ts +240 -0
  635. package/src/editor/selectors/ai-selector.tsx +111 -0
  636. package/src/editor/selectors/color-selector.tsx +200 -0
  637. package/src/editor/selectors/link-selector.tsx +118 -0
  638. package/src/editor/selectors/node-selector.tsx +157 -0
  639. package/src/editor/selectors/text-buttons.tsx +86 -0
  640. package/src/editor/types.ts +6 -0
  641. package/src/editor/useProseMirror.ts +126 -0
  642. package/src/editor/utils/prosemirror-utils.ts +113 -0
  643. package/src/editor/utils/remove_classes.ts +17 -0
  644. package/src/editor/utils/useDebouncedCallback.ts +25 -0
  645. package/src/form/EntityForm.tsx +800 -0
  646. package/src/form/EntityFormActions.tsx +204 -0
  647. package/src/form/PropertyFieldBinding.tsx +344 -0
  648. package/src/form/components/ErrorFocus.tsx +44 -0
  649. package/src/form/components/FieldHelperText.tsx +45 -0
  650. package/src/form/components/FormEntry.tsx +22 -0
  651. package/src/form/components/FormLayout.tsx +16 -0
  652. package/src/form/components/LabelWithIcon.tsx +43 -0
  653. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  654. package/src/form/components/LocalChangesMenu.tsx +145 -0
  655. package/src/form/components/StorageItemPreview.tsx +81 -0
  656. package/src/form/components/StorageUploadProgress.tsx +105 -0
  657. package/src/form/components/index.tsx +5 -0
  658. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +107 -0
  659. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +169 -0
  660. package/src/form/field_bindings/BlockFieldBinding.tsx +274 -0
  661. package/src/form/field_bindings/DateTimeFieldBinding.tsx +72 -0
  662. package/src/form/field_bindings/KeyValueFieldBinding.tsx +567 -0
  663. package/src/form/field_bindings/MapFieldBinding.tsx +162 -0
  664. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +142 -0
  665. package/src/form/field_bindings/MultiSelectFieldBinding.tsx +122 -0
  666. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +155 -0
  667. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +66 -0
  668. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +140 -0
  669. package/src/form/field_bindings/ReferenceFieldBinding.tsx +140 -0
  670. package/src/form/field_bindings/RelationFieldBinding.tsx +183 -0
  671. package/src/form/field_bindings/RepeatFieldBinding.tsx +139 -0
  672. package/src/form/field_bindings/SelectFieldBinding.tsx +109 -0
  673. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +493 -0
  674. package/src/form/field_bindings/SwitchFieldBinding.tsx +65 -0
  675. package/src/form/field_bindings/TextFieldBinding.tsx +155 -0
  676. package/src/form/field_bindings/UserSelectFieldBinding.tsx +98 -0
  677. package/src/form/index.tsx +27 -0
  678. package/src/form/useClearRestoreValue.tsx +36 -0
  679. package/src/form/validation.ts +592 -0
  680. package/src/hooks/index.ts +15 -0
  681. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +20 -0
  682. package/src/hooks/navigation/contexts/NavigationStateContext.tsx +16 -0
  683. package/src/hooks/navigation/contexts/UrlContext.tsx +25 -0
  684. package/src/hooks/navigation/contexts/index.ts +14 -0
  685. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +155 -0
  686. package/src/hooks/navigation/useBuildNavigationStateController.tsx +123 -0
  687. package/src/hooks/navigation/useBuildUrlController.tsx +66 -0
  688. package/src/hooks/navigation/useNavigationRegistry.ts +146 -0
  689. package/src/hooks/navigation/useNavigationResolution.ts +130 -0
  690. package/src/hooks/navigation/useNavigationURLs.ts +56 -0
  691. package/src/hooks/navigation/useResolvedCollections.ts +133 -0
  692. package/src/hooks/navigation/useResolvedViews.tsx +197 -0
  693. package/src/hooks/navigation/useTopLevelNavigation.ts +257 -0
  694. package/src/hooks/navigation/utils.ts +171 -0
  695. package/src/hooks/useBreadcrumbsController.tsx +49 -0
  696. package/src/hooks/useBuildSideDialogsController.tsx +145 -0
  697. package/src/hooks/useBuildSideEntityController.tsx +309 -0
  698. package/src/hooks/useCMSContext.tsx +77 -0
  699. package/src/hooks/useEntityHistory.ts +168 -0
  700. package/src/hooks/useEntitySelectionDialog.tsx +57 -0
  701. package/src/hooks/useResolvedNavigationFrom.tsx +155 -0
  702. package/src/hooks/useSideDialogsController.tsx +25 -0
  703. package/src/hooks/useSideEntityController.tsx +13 -0
  704. package/src/index.ts +95 -0
  705. package/src/preview/PropertyPreview.tsx +291 -0
  706. package/src/preview/components/ArrayEnumPreview.tsx +39 -0
  707. package/src/preview/components/BooleanPreview.tsx +25 -0
  708. package/src/preview/components/DatePreview.tsx +93 -0
  709. package/src/preview/components/EmptyValue.tsx +10 -0
  710. package/src/preview/components/EnumValuesChip.tsx +39 -0
  711. package/src/preview/components/ImagePreview.tsx +142 -0
  712. package/src/preview/components/ReferencePreview.tsx +166 -0
  713. package/src/preview/components/RelationPreview.tsx +158 -0
  714. package/src/preview/components/StorageThumbnail.tsx +90 -0
  715. package/src/preview/components/UrlComponentPreview.tsx +114 -0
  716. package/src/preview/components/UserPreview.tsx +29 -0
  717. package/src/preview/index.ts +25 -0
  718. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +73 -0
  719. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +44 -0
  720. package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +50 -0
  721. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +49 -0
  722. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +44 -0
  723. package/src/preview/property_previews/ArrayOneOfPreview.tsx +68 -0
  724. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +35 -0
  725. package/src/preview/property_previews/ArrayPropertyPreview.tsx +70 -0
  726. package/src/preview/property_previews/MapPropertyPreview.tsx +146 -0
  727. package/src/preview/property_previews/NumberPropertyPreview.tsx +29 -0
  728. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +277 -0
  729. package/src/preview/property_previews/StringPropertyPreview.tsx +59 -0
  730. package/src/preview/util.ts +30 -0
  731. package/src/routes/CustomViewRoute.tsx +24 -0
  732. package/src/routes/RebaseRoute.tsx +265 -0
  733. package/src/routes/index.ts +2 -0
  734. package/src/types/components/EntityFormActionsProps.tsx +20 -0
  735. package/src/types/components/EntityFormProps.tsx +54 -0
  736. package/src/types/components/PropertyPreviewProps.tsx +59 -0
  737. package/src/types/components/formex.tsx +46 -0
  738. package/src/types/components/index.ts +3 -0
  739. package/src/types/fields.tsx +299 -0
  740. package/src/types/index.ts +4 -0
  741. package/src/util/entity_actions.ts +28 -0
  742. package/src/util/index.ts +5 -0
  743. package/src/util/navigation_utils.ts +223 -0
  744. package/src/util/previews.ts +50 -0
  745. package/src/util/property_utils.tsx +215 -0
  746. package/src/util/resolutions.ts +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyEditView-BC5GO9AI.js","sources":["../src/collection_editor/ui/collection_editor/EnumForm.tsx","../src/collection_editor/ui/collection_editor/SwitchControl.tsx","../src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx","../src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx","../src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx","../src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx","../src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx","../src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx","../src/collection_editor/ui/collection_editor/AIModifiedPathsContext.tsx","../src/collection_editor/ui/collection_editor/PropertyTree.tsx","../src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx","../src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx","../src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx","../src/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.tsx","../src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx","../src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts","../src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx","../src/collection_editor/ui/collection_editor/utils/supported_fields.tsx","../src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx","../src/collection_editor/ui/collection_editor/PropertyEditView.tsx"],"sourcesContent":["import { FieldCaption } from \"../../_cms_internals\";\nimport React, { useEffect } from \"react\";\nimport { deepEqual as equal } from \"fast-equals\"\n\n;\nimport { EnumValueConfig, EnumValues } from \"@rebasepro/types\";\nimport { ArrayContainer, ArrayEntryParams } from \"../../_cms_internals\";\nimport {\n AutorenewIcon,\n Badge,\n Button,\n CircularProgress,\n DebouncedTextField,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n IconButton,\n ListIcon,\n Paper,\n SettingsIcon,\n Typography\n} from \"@rebasepro/ui\";\nimport { extractEnumFromValues } from \"@rebasepro/schema-inference\";\nimport { Field, Formex, getIn, useCreateFormex, useFormex } from \"@rebasepro/formex\";\n\ntype EnumFormProps = {\n enumValues: EnumValueConfig[];\n onValuesChanged?: (enumValues: EnumValueConfig[]) => void;\n onError?: (error: boolean) => void;\n updateIds: boolean;\n disabled: boolean;\n allowDataInference?: boolean;\n getData?: () => Promise<string[]>;\n};\n\nexport function EnumForm({\n enumValues,\n onValuesChanged,\n onError,\n updateIds,\n disabled,\n allowDataInference,\n getData\n}: EnumFormProps) {\n\n const formex = useCreateFormex<{\n enum: EnumValueConfig[]\n }>({\n initialValues: { enum: enumValues },\n validateOnChange: true,\n validation: (values) => {\n interface EnumFieldError { label?: string; id?: string; }\n const enumErrors: EnumFieldError[] = [];\n let hasAnyError = false;\n if (values.enum) {\n values.enum.forEach((enumValue, index) => {\n const fieldError: EnumFieldError = {};\n if (!enumValue?.label) {\n fieldError.label = \"You must specify a label for this enum value entry\";\n hasAnyError = true;\n }\n if (!enumValue?.id) {\n fieldError.id = \"You must specify an ID for this enum value entry\";\n hasAnyError = true;\n }\n enumErrors[index] = fieldError;\n });\n }\n const errors = hasAnyError ? { enum: enumErrors } : {};\n onError?.(hasAnyError);\n return errors as Record<string, string>;\n }\n });\n\n const {\n values,\n errors\n } = formex;\n\n useEffect(() => {\n if (onValuesChanged) {\n onValuesChanged(values.enum);\n }\n }, [values.enum]);\n\n return <Formex value={formex as ReturnType<typeof useCreateFormex>}>\n <EnumFormFields enumValuesPath={\"enum\"}\n values={values}\n errors={errors}\n shouldUpdateId={updateIds}\n disabled={disabled}\n allowDataInference={allowDataInference}\n getData={getData} />\n </Formex>\n\n}\n\ntype EnumFormFieldsProps = {\n values: {\n enum: EnumValueConfig[]\n };\n errors: { enum?: Array<{ label?: string; id?: string }> };\n enumValuesPath: string;\n shouldUpdateId: boolean;\n disabled: boolean;\n getData?: () => Promise<string[]>;\n allowDataInference?: boolean;\n};\n\n// const EnumFormFields = React.memo(\nfunction EnumFormFields({\n values,\n errors,\n disabled,\n enumValuesPath,\n shouldUpdateId,\n allowDataInference,\n getData,\n}: EnumFormFieldsProps) {\n\n const {\n setFieldValue\n } = useFormex();\n\n const [lastInternalIdAdded, setLastInternalIdAdded] = React.useState<number | undefined>();\n const [editDialogIndex, setEditDialogIndex] = React.useState<number | undefined>();\n const [inferring, setInferring] = React.useState(false);\n\n const inferredValuesRef = React.useRef(new Set());\n const inferredValues = inferredValuesRef.current;\n\n const buildEntry = ({\n index,\n internalId\n }: ArrayEntryParams) => {\n const justAdded = lastInternalIdAdded === internalId;\n const entryError = errors?.enum?.[index];\n return <EnumEntry index={index}\n disabled={disabled}\n enumValuesPath={enumValuesPath}\n autoFocus={justAdded}\n entryError={entryError}\n shouldUpdateId={shouldUpdateId || justAdded}\n onDialogOpen={() => setEditDialogIndex(index)}\n inferredEntry={inferredValues.has(values.enum[index]?.id as string)}\n key={`${internalId}`} />;\n };\n\n const inferValues = async () => {\n if (!getData)\n return;\n setInferring(true);\n getData?.().then((data) => {\n if (!data)\n return;\n\n const flatData = data.flat();\n\n const fieldData = Array.from(new Set(flatData));\n\n const currentEnumValues = values.enum;\n const foundEnumValues = extractEnumFromValues(fieldData);\n\n // add only new enum values\n const newEnumValues = foundEnumValues.filter((enumValue) => {\n return !currentEnumValues?.some((v: EnumValueConfig) => v.id === enumValue.id);\n });\n\n newEnumValues.forEach((enumValue) => {\n inferredValues.add(enumValue.id);\n });\n setFieldValue(enumValuesPath, [...newEnumValues, ...currentEnumValues], true);\n }).catch(e => {\n console.error(e);\n })\n .finally(() => setInferring(false));\n }\n\n return (\n <div className={\"col-span-12\"}>\n <div className=\"ml-3.5 flex flex-row items-center\">\n <ListIcon />\n <Typography variant={\"subtitle2\"}\n className=\"ml-2 grow\">\n Values\n </Typography>\n {allowDataInference &&\n <Button loading={inferring}\n disabled={disabled || inferring}\n variant={\"text\"}\n size={\"small\"}\n onClick={inferValues}>\n {inferring ? <CircularProgress size={\"smallest\"} /> : <AutorenewIcon />}\n Infer values from data\n </Button>}\n </div>\n\n <Paper className=\"p-4 m-1\">\n\n <ArrayContainer droppableId={enumValuesPath}\n addLabel={\"Add enum value\"}\n value={values.enum}\n disabled={disabled}\n size={\"small\"}\n buildEntry={buildEntry}\n onInternalIdAdded={setLastInternalIdAdded}\n canAddElements={true}\n onValueChange={(value: EnumValueConfig[]) => setFieldValue(enumValuesPath, value)}\n newDefaultEntry={{\n id: \"\",\n label: \"\"\n }} />\n\n <EnumEntryDialog index={editDialogIndex}\n open={editDialogIndex !== undefined}\n enumValuesPath={enumValuesPath}\n onClose={() => setEditDialogIndex(undefined)} />\n </Paper>\n </div>\n );\n}\n\ntype EnumEntryProps = {\n index: number,\n enumValuesPath: string,\n shouldUpdateId: boolean,\n autoFocus: boolean,\n onDialogOpen: () => void;\n disabled: boolean;\n inferredEntry?: boolean;\n entryError?: { label?: string, id?: string }\n};\n\nconst EnumEntry = React.memo(\n function EnumEntryInternal({\n index,\n shouldUpdateId: updateId,\n enumValuesPath,\n autoFocus,\n onDialogOpen,\n disabled,\n inferredEntry,\n entryError\n }: EnumEntryProps) {\n\n const {\n values,\n handleChange,\n errors,\n setFieldValue,\n touched\n } = useFormex<EnumValues>();\n\n const shouldUpdateIdRef = React.useRef(!getIn(values, `${enumValuesPath}[${index}].id`));\n const shouldUpdateId = updateId || shouldUpdateIdRef.current;\n\n const idValue = getIn(values, `${enumValuesPath}[${index}].id`);\n const labelValue = getIn(values, `${enumValuesPath}[${index}].label`);\n\n const currentLabelRef = React.useRef(labelValue);\n\n React.useEffect(() => {\n if ((currentLabelRef.current === idValue || !idValue) && shouldUpdateId) {\n setFieldValue(`${enumValuesPath}[${index}].id`, labelValue);\n }\n currentLabelRef.current = labelValue;\n }, [labelValue]);\n\n return (\n <>\n <div className={\"flex w-full align-center justify-center\"}>\n <Field name={`${enumValuesPath}[${index}].label`}\n as={DebouncedTextField}\n className={\"grow\"}\n required\n disabled={disabled}\n size=\"small\"\n autoFocus={autoFocus}\n autoComplete=\"off\"\n endAdornment={inferredEntry && <AutorenewIcon size={\"small\"} />}\n error={Boolean(entryError?.label)} />\n\n {!disabled &&\n <Badge color={\"error\"} invisible={!entryError?.id}>\n <IconButton\n size=\"small\"\n aria-label=\"edit\"\n className={\"m-1\"}\n onClick={() => onDialogOpen()}>\n <SettingsIcon size={\"small\"} />\n </IconButton>\n </Badge>}\n\n </div>\n\n {entryError?.label && <Typography variant={\"caption\"}\n className={\"ml-3.5 text-red-500 dark:text-red-500\"}>\n {entryError?.label}\n </Typography>}\n\n {entryError?.id && <Typography variant={\"caption\"}\n className={\"ml-3.5 text-red-500 dark:text-red-500\"}>\n {entryError?.id}\n </Typography>}\n\n </>);\n },\n function areEqual(prevProps: EnumEntryProps, nextProps: EnumEntryProps) {\n return prevProps.index === nextProps.index &&\n prevProps.enumValuesPath === nextProps.enumValuesPath &&\n prevProps.shouldUpdateId === nextProps.shouldUpdateId &&\n prevProps.inferredEntry === nextProps.inferredEntry &&\n equal(prevProps.entryError, nextProps.entryError) &&\n prevProps.autoFocus === nextProps.autoFocus;\n }\n);\n\nfunction EnumEntryDialog({\n index,\n open,\n onClose,\n enumValuesPath\n}: {\n index?: number;\n open: boolean;\n enumValuesPath: string;\n onClose: () => void;\n}) {\n\n const {\n errors,\n } = useFormex<EnumValues>();\n\n const idError = index !== undefined ? getIn(errors, `${enumValuesPath}[${index}].id`) : undefined;\n return <Dialog\n maxWidth=\"md\"\n aria-labelledby=\"enum-edit-dialog\"\n open={open}\n onOpenChange={(open) => !open ? onClose() : undefined}\n >\n <DialogTitle hidden>Enum form dialog</DialogTitle>\n <DialogContent>\n {index !== undefined &&\n <div>\n <Field name={`${enumValuesPath}[${index}].id`}\n as={DebouncedTextField}\n required\n label={\"ID\"}\n size=\"small\"\n autoComplete=\"off\"\n error={Boolean(idError)} />\n\n <FieldCaption error={Boolean(idError)}>\n {idError ?? \"Value saved in the data source\"}\n </FieldCaption>\n </div>}\n </DialogContent>\n\n <DialogActions>\n <Button\n autoFocus\n onClick={onClose}>\n Ok\n </Button>\n </DialogActions>\n\n </Dialog>\n}\n\n","import React from \"react\";\n\nimport { BooleanSwitchWithLabel, Tooltip } from \"@rebasepro/ui\";\nimport { FormexFieldProps } from \"@rebasepro/formex\";\n\nexport function SwitchControl({\n field,\n form,\n label,\n tooltip,\n disabled,\n size = \"small\",\n allowIndeterminate\n}: FormexFieldProps & {\n label: string,\n tooltip?: string,\n disabled?: boolean,\n size?: \"small\" | \"medium\",\n allowIndeterminate?: boolean\n}) {\n\n const formControlLabel = <BooleanSwitchWithLabel\n label={label}\n size={size}\n position={\"start\"}\n value={field.value}\n disabled={disabled}\n allowIndeterminate={allowIndeterminate}\n onValueChange={(checked: boolean | null) => form.setFieldValue(field.name, checked)} />;\n\n if (tooltip)\n return (\n <Tooltip\n title={tooltip}>\n {formControlLabel}\n </Tooltip>\n );\n return formControlLabel;\n}\n","import React from \"react\";\n\nimport { Field, FormexFieldProps, getIn, useFormex } from \"@rebasepro/formex\";\nimport { DebouncedTextField } from \"@rebasepro/ui\";\nimport { SwitchControl } from \"../../SwitchControl\";\n\nexport function GeneralPropertyValidation({ disabled }: {\n required?: boolean;\n disabled: boolean;\n}) {\n\n const { values, handleChange } = useFormex();\n\n const validationRequired = \"validation.required\";\n const validationRequiredMessage = \"validation.requiredMessage\";\n const validationUnique = \"validation.unique\";\n const validationUniqueInArray = \"validation.uniqueInArray\";\n\n return (\n <>\n <div className={\"col-span-6\"}>\n <Field name={validationRequired}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n disabled={disabled}\n label={\"Required\"}\n tooltip={\"You won't be able to save this entity if this value is not set\"}\n form={form}\n field={field} />\n }}\n </Field>\n </div>\n\n <div className={\"col-span-6\"}>\n\n <Field name={validationUnique}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n disabled={disabled}\n label={\"Unique\"}\n tooltip={\"There cannot be multiple entities with the same value\"}\n form={form}\n field={field} />\n }}\n </Field>\n </div>\n\n {getIn(values, validationRequired) && <div className={\"col-span-12\"}>\n <DebouncedTextField\n disabled={disabled}\n value={getIn(values, validationRequiredMessage)}\n label={\"Required message\"}\n name={validationRequiredMessage}\n size=\"small\"\n onChange={handleChange} />\n </div>}\n </>\n );\n}\n","import { FieldCaption } from \"../../../../_cms_internals\";\nimport React from \"react\";\n\nimport { Field, FormexFieldProps, getIn, useFormex } from \"@rebasepro/formex\";\n;\nimport { DebouncedTextField, } from \"@rebasepro/ui\";\nimport { GeneralPropertyValidation } from \"./GeneralPropertyValidation\";\nimport { SwitchControl } from \"../../SwitchControl\";\nimport { serializeRegExp } from \"@rebasepro/utils\";\n\nexport function StringPropertyValidation({\n length,\n lowercase,\n matches,\n max,\n min,\n trim,\n uppercase,\n disabled,\n showErrors\n}: {\n length?: boolean;\n min?: boolean;\n max?: boolean;\n trim?: boolean;\n matches?: boolean;\n lowercase?: boolean;\n uppercase?: boolean;\n disabled: boolean;\n showErrors: boolean;\n}) {\n\n const {\n values,\n handleChange,\n errors\n } = useFormex();\n\n const validationLength = \"validation.length\";\n const validationMin = \"validation.min\";\n const validationMax = \"validation.max\";\n const validationTrim = \"validation.trim\";\n const validationMatches = \"validation.matches\";\n const validationLowercase = \"validation.lowercase\";\n const validationUppercase = \"validation.uppercase\";\n\n const matchesError = getIn(errors, validationMatches);\n\n const matchesValue = getIn(values, validationMatches);\n const matchesStringValue = typeof matchesValue === \"string\" ? matchesValue : serializeRegExp(matchesValue);\n return (\n <div className={\"grid grid-cols-12 gap-2\"}>\n\n <GeneralPropertyValidation disabled={disabled} />\n\n <div className={\"grid grid-cols-12 gap-2 col-span-12\"}>\n\n {lowercase && <div className={\"col-span-4\"}>\n <Field name={validationLowercase}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Lowercase\"}\n disabled={disabled}\n form={form}\n field={field} />\n }}\n </Field>\n </div>}\n\n {uppercase && <div className={\"col-span-4\"}>\n <Field name={validationUppercase}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Uppercase\"}\n disabled={disabled}\n form={form}\n field={field} />\n }}\n </Field>\n </div>}\n\n {trim && <div className={\"col-span-4\"}>\n <Field name={validationTrim}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Trim\"}\n disabled={disabled}\n form={form}\n field={field} />\n }}\n </Field>\n </div>}\n\n </div>\n\n <div className={\"grid grid-cols-12 gap-2 col-span-12\"}>\n {length && <div className={\"col-span-4\"}>\n <DebouncedTextField\n value={getIn(values, validationLength)}\n label={\"Exact length\"}\n name={validationLength}\n type=\"number\"\n size=\"small\"\n\n disabled={disabled}\n onChange={handleChange} />\n </div>}\n\n {min && <div className={\"col-span-4\"}>\n <DebouncedTextField value={getIn(values, validationMin)}\n label={\"Min length\"}\n name={validationMin}\n type=\"number\"\n size=\"small\"\n\n disabled={disabled}\n onChange={handleChange} />\n </div>}\n\n {max && <div className={\"col-span-4\"}>\n <DebouncedTextField value={getIn(values, validationMax)}\n label={\"Max length\"}\n name={validationMax}\n type=\"number\"\n size=\"small\"\n\n disabled={disabled}\n onChange={handleChange} />\n </div>}\n\n </div>\n\n {matches && <div className={\"col-span-12\"}>\n <Field name={validationMatches}\n as={DebouncedTextField}\n label={\"Matches regex\"}\n size=\"small\"\n disabled={disabled}\n value={matchesStringValue}\n error={Boolean(matchesError)} />\n <FieldCaption error={Boolean(matchesError)}>\n {matchesError ? \"Not a valid regexp\" : \"e.g. /^\\\\d+$/ for digits only\"}\n </FieldCaption>\n </div>}\n\n </div>\n );\n\n}\n","import React from \"react\";\n\nimport { getIn, useFormex } from \"@rebasepro/formex\";\nimport { DebouncedTextField } from \"@rebasepro/ui\";\nimport { GeneralPropertyValidation } from \"./GeneralPropertyValidation\";\n\nexport function ArrayPropertyValidation({\n max = true,\n min = true,\n disabled\n}: {\n min?: boolean;\n max?: boolean;\n disabled: boolean;\n}) {\n\n const {\n values,\n handleChange\n } = useFormex();\n\n const validationMin = \"validation.min\";\n const validationMax = \"validation.max\";\n\n return (\n <div className={\"grid grid-cols-12 gap-2\"}>\n\n <GeneralPropertyValidation disabled={disabled} />\n\n {min && <div className={\"col-span-6\"}>\n <DebouncedTextField value={getIn(values, validationMin)}\n disabled={disabled}\n label={\"Min length\"}\n name={validationMin}\n type=\"number\"\n size=\"small\"\n onChange={handleChange} />\n </div>}\n {max && <div className={\"col-span-6\"}>\n <DebouncedTextField value={getIn(values, validationMax)}\n disabled={disabled}\n label={\"Max length\"}\n name={validationMax}\n type=\"number\"\n size=\"small\"\n onChange={handleChange} />\n </div>}\n </div>\n );\n}\n","import { PropsWithChildren } from \"react\";\n\nimport { ExpandablePanel, RuleIcon, Typography } from \"@rebasepro/ui\";\n\nexport function ValidationPanel({\n children\n}: { children?: React.ReactNode }) {\n\n return (\n <ExpandablePanel\n initiallyExpanded={false}\n asField={true}\n innerClassName=\"p-4\"\n title={\n <div className=\"flex flex-row text-surface-500 text-text-secondary dark:text-text-secondary-dark\">\n <RuleIcon />\n <Typography variant={\"subtitle2\"}\n className=\"ml-4\">\n Validation\n </Typography>\n </div>\n }>\n\n {children}\n\n </ExpandablePanel>\n )\n}\n","import React, { useMemo } from \"react\";\nimport { getIn, useFormex } from \"@rebasepro/formex\";\nimport { useSnackbarController } from \"@rebasepro/core\";\nimport { EnumValueConfig } from \"@rebasepro/types\";\nimport { resolveEnumValues } from \"@rebasepro/common\";\nimport { Select, SelectItem } from \"@rebasepro/ui\";\nimport { EnumForm } from \"../EnumForm\";\nimport { StringPropertyValidation } from \"./validation/StringPropertyValidation\";\nimport { ArrayPropertyValidation } from \"./validation/ArrayPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\nimport { PropertyWithId } from \"../PropertyEditView\";\n\nexport function EnumPropertyField({\n multiselect,\n updateIds,\n disabled,\n showErrors,\n allowDataInference,\n getData,\n propertyNamespace\n}: {\n multiselect: boolean;\n updateIds: boolean;\n disabled: boolean;\n showErrors: boolean;\n allowDataInference?: boolean;\n getData?: () => Promise<object[]>;\n propertyNamespace?: string;\n}) {\n\n const {\n values,\n setFieldError,\n setFieldValue\n } = useFormex<PropertyWithId>();\n\n const snackbarContext = useSnackbarController();\n\n const enumValuesPath = multiselect ? \"of.enum\" : \"enum\";\n\n const defaultValue = getIn(values, \"defaultValue\");\n\n const valuesEnumValues = getIn(values, enumValuesPath);\n const enumValues: EnumValueConfig[] = useMemo(() => {\n if (!valuesEnumValues || typeof valuesEnumValues === \"boolean\")\n return [] as EnumValueConfig[];\n return resolveEnumValues(valuesEnumValues) ?? [] as EnumValueConfig[];\n }, [valuesEnumValues]);\n\n const onValuesChanged = (value: EnumValueConfig[]) => {\n if (!values)\n return;\n setFieldValue(enumValuesPath, value);\n if (!multiselect) {\n const enumIds = value.filter(v => Boolean(v?.id)).map((v: EnumValueConfig) => v.id);\n if (defaultValue && !enumIds.includes(defaultValue)) {\n setFieldValue(\"defaultValue\", undefined);\n snackbarContext.open({\n type: \"warning\",\n message: \"Default value was cleared\"\n })\n }\n }\n };\n\n // Build full path including namespace for nested properties (e.g., \"address.status\")\n const fullPropertyPath = values.id\n ? (propertyNamespace ? `${propertyNamespace}.${values.id}` : values.id)\n : undefined;\n\n return (\n <>\n <div className={\"col-span-12\"}>\n <EnumForm enumValues={enumValues}\n updateIds={updateIds}\n disabled={disabled}\n allowDataInference={allowDataInference}\n onError={(hasError) => {\n setFieldError(enumValuesPath, hasError ? \"This enum property is missing some values\" : undefined);\n }}\n getData={getData && fullPropertyPath\n ? () => getData()\n .then(res => res.map(entry => getIn(entry, fullPropertyPath)).filter(Boolean))\n : undefined}\n onValuesChanged={onValuesChanged} />\n </div>\n\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n {!multiselect &&\n <StringPropertyValidation disabled={disabled}\n showErrors={showErrors} />}\n {multiselect &&\n <ArrayPropertyValidation disabled={disabled} />}\n </ValidationPanel>\n\n </div>\n\n {!multiselect && <div className={\"col-span-12\"}>\n\n <Select\n disabled={disabled}\n position={\"item-aligned\"}\n fullWidth={true}\n onValueChange={(value: string) => {\n setFieldValue(\"defaultValue\", value);\n }}\n label={\"Default value\"}\n value={defaultValue ?? \"\"}>\n {enumValues\n .filter((enumValue) => Boolean(enumValue?.id))\n .map((enumValue) => (\n <SelectItem key={enumValue.id}\n value={enumValue.id?.toString()}>\n {enumValue.label}\n </SelectItem>\n ))}\n </Select>\n\n </div>}\n </>\n );\n}\n","import React from \"react\";\nimport {\n Button,\n CloudUploadIcon,\n DebouncedTextField,\n ExpandablePanel,\n MultiSelect,\n MultiSelectItem,\n Select,\n SelectItem,\n Typography\n} from \"@rebasepro/ui\";\n\nimport { Field, FormexFieldProps, getIn, useFormex } from \"@rebasepro/formex\";\nimport { GeneralPropertyValidation } from \"./validation/GeneralPropertyValidation\";\nimport { ArrayPropertyValidation } from \"./validation/ArrayPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\nimport { SwitchControl } from \"../SwitchControl\";\n\nconst fileTypes: Record<string, string> = {\n \"image/*\": \"Images\",\n \"video/*\": \"Videos\",\n \"audio/*\": \"Audio files\",\n \"application/*\": \"Files (pdf, zip, csv, excel...)\",\n \"text/*\": \"Text files\"\n}\n\nexport function StoragePropertyField({\n multiple,\n existing,\n disabled\n}: {\n multiple: boolean;\n existing: boolean;\n disabled: boolean;\n}) {\n\n const {\n values,\n setFieldValue\n } = useFormex();\n\n const baseStoragePath = multiple ? \"of.storage\" : \"storage\";\n const acceptedFiles = `${baseStoragePath}.acceptedFiles`;\n\n const metadata = `${baseStoragePath}.metadata`;\n const fileName = `${baseStoragePath}.fileName`;\n const maxSize = `${baseStoragePath}.maxSize`;\n const storagePath = `${baseStoragePath}.storagePath`;\n const storeUrl = `${baseStoragePath}.storeUrl`;\n const includeBucketUrl = `${baseStoragePath}.includeBucketUrl`;\n\n // Image resize config paths\n const imageResize = `${baseStoragePath}.imageResize`;\n const imageResizeMaxWidth = `${imageResize}.maxWidth`;\n const imageResizeMaxHeight = `${imageResize}.maxHeight`;\n const imageResizeMode = `${imageResize}.mode`;\n const imageResizeFormat = `${imageResize}.format`;\n const imageResizeQuality = `${imageResize}.quality`;\n\n const fileNameValue = getIn(values, fileName) ?? \"{rand}_{file}\";\n const storagePathValue = getIn(values, storagePath) ?? \"/\";\n const maxSizeValue = getIn(values, maxSize);\n\n // Image resize values\n const imageResizeMaxWidthValue = getIn(values, imageResizeMaxWidth);\n const imageResizeMaxHeightValue = getIn(values, imageResizeMaxHeight);\n const imageResizeModeValue = getIn(values, imageResizeMode) ?? \"cover\";\n const imageResizeFormatValue = getIn(values, imageResizeFormat) ?? \"original\";\n const imageResizeQualityValue = getIn(values, imageResizeQuality);\n\n const storedValue = getIn(values, acceptedFiles);\n const fileTypesValue: string[] | undefined = Array.isArray(storedValue) ? storedValue : undefined;\n const allFileTypesSelected = !fileTypesValue || fileTypesValue.length === 0;\n\n const handleTypesChange = (value: string[]) => {\n if (!value) setFieldValue(acceptedFiles, undefined);\n else setFieldValue(acceptedFiles, value);\n };\n\n const hasFilenameCallback = typeof fileNameValue === \"function\";\n const hasStoragePathCallback = typeof storagePathValue === \"function\";\n\n return (\n <>\n\n <div className={\"col-span-12\"}>\n\n <ExpandablePanel\n title={\n <div className=\"flex flex-row text-surface-500 text-text-secondary dark:text-text-secondary-dark\">\n <CloudUploadIcon />\n <Typography variant={\"subtitle2\"}\n className=\"ml-4\">\n File upload config\n </Typography>\n </div>\n }>\n\n <div className={\"grid grid-cols-12 gap-2 p-4\"}>\n\n <div className={\"col-span-12\"}>\n\n <MultiSelect\n className={\"w-full\"}\n placeholder={\"All file types allowed\"}\n disabled={disabled}\n name={acceptedFiles}\n value={fileTypesValue ?? []}\n onValueChange={handleTypesChange}\n label={allFileTypesSelected ? undefined : \"Allowed file types\"}\n renderValues={(selected: string[]) => {\n if (!selected || selected.length === 0) return \"All file types allowed\";\n return selected.map((v: string) => fileTypes[v])\n .filter((v: string) => Boolean(v))\n .join(\", \");\n }}>\n\n {Object.entries(fileTypes).map(([value, label]) => (\n <MultiSelectItem key={value} value={value} className={\"flex items-center gap-2\"}>\n {/*<Checkbox*/}\n {/* checked={allFileTypesSelected || fileTypesValue.indexOf(value) > -1}/>*/}\n <div className={\"grow\"}>\n {label}\n </div>\n <Button size={\"small\"}\n variant={\"text\"}\n onClick={(e: React.MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n return setFieldValue(acceptedFiles, [value]);\n }}>\n Only\n </Button>\n </MultiSelectItem>\n ))}\n\n </MultiSelect>\n </div>\n\n <div className={\"col-span-12\"}>\n <Field name={fileName}\n as={DebouncedTextField}\n label={\"File name\"}\n size={\"small\"}\n disabled={hasFilenameCallback || disabled}\n value={hasFilenameCallback ? \"-\" : fileNameValue}\n />\n </div>\n <div className={\"col-span-12\"}>\n <Field name={storagePath}\n as={DebouncedTextField}\n label={\"Storage path\"}\n disabled={hasStoragePathCallback || disabled}\n size={\"small\"}\n value={hasStoragePathCallback ? \"-\" : storagePathValue}\n />\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n <p>You can use the following placeholders in\n the file name\n and storage path values:</p>\n <ul>\n <li>{\"{file} - Full name of the uploaded file\"}</li>\n <li>{\"{file.name} - Name of the uploaded file without extension\"}</li>\n <li>{\"{file.ext} - Extension of the uploaded file\"}</li>\n <li>{\"{entityId} - ID of the entity\"}</li>\n <li>{\"{propertyKey} - ID of this field\"}</li>\n <li>{\"{path} - Path of this entity\"}</li>\n <li>{\"{rand} - Random value used to avoid name collisions\"}</li>\n </ul>\n </Typography>\n\n <Field name={includeBucketUrl}\n type=\"checkbox\">\n {({\n field,\n form\n }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Include bucket URL (gs://...) in saved value\"}\n disabled={existing || disabled}\n form={form}\n field={field} />;\n }}\n </Field>\n\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n Turn this setting on if you want to save a fully-qualified storage URL\n (e.g. <code>gs://my-bucket/path/to/file</code>) instead of just the storage path.\n You can only change this prop upon creation.\n </Typography>\n\n <Field name={storeUrl}\n type=\"checkbox\">\n {({\n field,\n form\n }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Save URL instead of storage path\"}\n disabled={existing || disabled}\n form={form}\n field={field} />;\n }}\n </Field>\n\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n Turn this setting on, if you prefer to save\n the download\n URL of the uploaded file instead of the\n storage path.\n You can only change this prop upon creation.\n </Typography>\n </div>\n\n <div className={\"col-span-12\"}>\n <DebouncedTextField name={maxSize}\n type={\"number\"}\n label={\"Max size (in bytes)\"}\n size={\"small\"}\n value={maxSizeValue !== undefined && maxSizeValue !== null ? maxSizeValue.toString() : \"\"}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = e.target.value;\n if (value === \"\") setFieldValue(maxSize, undefined);\n else setFieldValue(maxSize, parseInt(value));\n }}\n />\n </div>\n\n <div className={\"col-span-12 mt-4\"}>\n <Typography variant={\"subtitle2\"}\n color={\"secondary\"}\n className={\"mb-2 block\"}>\n Image Resize Configuration\n </Typography>\n <Typography variant={\"caption\"} className={\"mb-2 block text-xs\"}>\n Automatically resize and optimize images before upload (JPEG, PNG, WebP only)\n </Typography>\n </div>\n\n <div className={\"col-span-6\"}>\n <DebouncedTextField\n name={imageResizeMaxWidth}\n type={\"number\"}\n label={\"Max width (px)\"}\n size={\"small\"}\n disabled={disabled}\n value={imageResizeMaxWidthValue !== undefined && imageResizeMaxWidthValue !== null ? imageResizeMaxWidthValue.toString() : \"\"}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = e.target.value;\n if (value === \"\") setFieldValue(imageResizeMaxWidth, undefined);\n else setFieldValue(imageResizeMaxWidth, parseInt(value));\n }}\n />\n </div>\n\n <div className={\"col-span-6\"}>\n <DebouncedTextField\n name={imageResizeMaxHeight}\n type={\"number\"}\n label={\"Max height (px)\"}\n size={\"small\"}\n disabled={disabled}\n value={imageResizeMaxHeightValue !== undefined && imageResizeMaxHeightValue !== null ? imageResizeMaxHeightValue.toString() : \"\"}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = e.target.value;\n if (value === \"\") setFieldValue(imageResizeMaxHeight, undefined);\n else setFieldValue(imageResizeMaxHeight, parseInt(value));\n }}\n />\n </div>\n\n <div className={\"col-span-6\"}>\n <Select\n disabled={disabled}\n name={imageResizeMode}\n fullWidth\n size={\"medium\"}\n value={imageResizeModeValue || \"cover\"}\n onValueChange={(value) => setFieldValue(imageResizeMode, value || \"cover\")}\n label={\"Resize mode\"}\n renderValue={(selected) => {\n if (!selected) return \"Cover\";\n return selected === \"contain\" ? \"Contain (fit within bounds)\" : \"Cover (fill bounds, may crop)\";\n }}>\n <SelectItem value=\"contain\">\n Contain (fit within bounds)\n </SelectItem>\n <SelectItem value=\"cover\">\n Cover (fill bounds, may crop)\n </SelectItem>\n </Select>\n </div>\n\n <div className={\"col-span-6\"}>\n <Select\n disabled={disabled}\n size={\"medium\"}\n fullWidth\n name={imageResizeFormat}\n value={imageResizeFormatValue || \"original\"}\n onValueChange={(value) => setFieldValue(imageResizeFormat, value || \"original\")}\n label={\"Output format\"}\n renderValue={(selected) => {\n if (!selected) return \"Original\";\n return selected.charAt(0).toUpperCase() + selected.slice(1);\n }}>\n <SelectItem value=\"original\">\n Original (keep same format)\n </SelectItem>\n <SelectItem value=\"jpeg\">\n JPEG\n </SelectItem>\n <SelectItem value=\"png\">\n PNG\n </SelectItem>\n <SelectItem value=\"webp\">\n WebP (best compression)\n </SelectItem>\n </Select>\n </div>\n\n <div className={\"col-span-12\"}>\n <DebouncedTextField\n name={imageResizeQuality}\n type={\"number\"}\n label={\"Quality (0-100)\"}\n size={\"small\"}\n disabled={disabled}\n value={imageResizeQualityValue !== undefined && imageResizeQualityValue !== null ? imageResizeQualityValue.toString() : \"\"}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const value = e.target.value;\n if (value === \"\") setFieldValue(imageResizeQuality, undefined);\n else {\n const numValue = parseInt(value);\n if (numValue >= 0 && numValue <= 100) {\n setFieldValue(imageResizeQuality, numValue);\n }\n }\n }}\n />\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n Higher quality = larger file size. Recommended: 80-90 for photos, 90-100 for graphics\n </Typography>\n </div>\n\n </div>\n </ExpandablePanel>\n\n </div>\n\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n {!multiple && <div className={\"grid grid-cols-12 gap-2\"}>\n <GeneralPropertyValidation disabled={disabled} />\n </div>}\n {multiple && <div className={\"col-span-12\"}>\n <ArrayPropertyValidation disabled={disabled} />\n </div>}\n </ValidationPanel>\n\n </div>\n </>\n );\n}\n","import { useCustomizationController } from \"@rebasepro/core\";\nimport { getFieldConfig, PropertyConfigBadge } from \"../../_cms_internals\";\nimport { ErrorBoundary } from \"@rebasepro/ui\";\nimport { Property } from \"@rebasepro/types\";\nimport { isPropertyBuilder } from \"@rebasepro/common\";\nimport {\n cls,\n DoNotDisturbOnIcon,\n FunctionsIcon,\n Paper,\n Typography,\n} from \"@rebasepro/ui\";\n\n\n\nexport function PropertyFieldPreview({\n property,\n propertyKey,\n onClick,\n hasError,\n includeName,\n includeEditButton,\n selected\n}: {\n property: Property,\n propertyKey?: string,\n hasError?: boolean,\n selected?: boolean,\n includeName?: boolean,\n includeEditButton?: boolean;\n onClick?: () => void\n}) {\n\n const { propertyConfigs } = useCustomizationController();\n const propertyConfig = getFieldConfig(property, propertyConfigs);\n\n\n const borderColorClass = hasError\n ? \"border-red-500 dark:border-red-500 border-red-500/100 dark:border-red-500/100 ring-0 dark:ring-0\"\n : (selected ? \"border-primary\" : \"\");\n\n return <ErrorBoundary>\n <div onClick={onClick} className={onClick ? \"cursor-pointer\" : \"\"}>\n <Paper\n className={cls(\n \"w-full flex flex-row gap-3 items-center px-3 py-2 rounded-lg transition-all duration-200 border border-transparent bg-transparent\",\n selected \n ? \"bg-primary/5 dark:bg-primary/10 ring-1 ring-inset ring-primary\" \n : \"hover:bg-surface-50 dark:hover:bg-surface-800\"\n )}\n >\n <PropertyConfigBadge propertyConfig={propertyConfig} size=\"small\" />\n\n <div className=\"flex-1 flex flex-col min-w-0 pr-8\">\n {includeName &&\n <ErrorBoundary>\n <div className=\"flex items-center gap-2\">\n <Typography variant=\"body2\" component=\"span\">\n {property.name || propertyKey || \"\\u00a0\"}\n </Typography>\n {property.name && propertyKey && property.name !== propertyKey && (\n <Typography variant=\"caption\" component=\"span\" color=\"secondary\" className=\"font-mono\">\n {propertyKey}\n </Typography>\n )}\n </div>\n </ErrorBoundary>}\n\n <div className=\"flex flex-row items-center gap-2 mt-0.5\">\n <ErrorBoundary>\n <Typography\n variant={\"caption\"}\n component=\"span\"\n className=\"text-text-secondary dark:text-text-secondary-dark font-medium\">\n {propertyConfig?.name}\n </Typography>\n </ErrorBoundary>\n </div>\n </div>\n\n <ErrorBoundary>\n <Typography variant=\"caption\" component=\"span\" className=\"ml-auto shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono bg-surface-100 dark:bg-surface-800 px-1.5 py-0.5 rounded mr-8\">\n {(\"columnType\" in property ? (property as unknown as Record<string, unknown>).columnType as string : undefined) || property.type}\n </Typography>\n </ErrorBoundary>\n\n {includeEditButton && <Typography variant={\"button\"}>EDIT</Typography>}\n </Paper>\n </div>\n </ErrorBoundary>\n}\n\nexport function NonEditablePropertyPreview({\n name,\n selected,\n onClick,\n property\n}: {\n name: string,\n selected: boolean,\n onClick?: () => void,\n property?: Property\n}) {\n\n const { propertyConfigs } = useCustomizationController();\n const propertyConfig = !isPropertyBuilder(property) && property ? getFieldConfig(property, propertyConfigs) : undefined;\n\n return (\n <div onClick={onClick} className={onClick ? \"cursor-pointer\" : \"\"}>\n <Paper\n className={cls(\n \"w-full flex flex-row gap-3 items-center px-3 py-2 rounded-lg transition-all duration-200 border border-transparent bg-transparent\",\n selected \n ? \"bg-primary/5 dark:bg-primary/10 ring-1 ring-inset ring-primary\" \n : \"hover:bg-surface-50 dark:hover:bg-surface-800\"\n )}\n >\n <div className={\"relative shrink-0\"}>\n {propertyConfig && <PropertyConfigBadge propertyConfig={propertyConfig} size=\"small\" />}\n {!propertyConfig && <div\n className={\"h-8 w-8 flex items-center justify-center rounded-full shadow-2xs text-white bg-surface-500\"}>\n <FunctionsIcon color={\"inherit\"} size={\"small\"} />\n </div>}\n <DoNotDisturbOnIcon color={\"disabled\"} size={\"small\"} className={\"absolute -right-2 -top-2 bg-surface-50 dark:bg-surface-900 rounded-full\"} />\n </div>\n\n <div className=\"flex-1 flex flex-col min-w-0 pr-8\">\n <Typography variant=\"label\" component=\"span\" className=\"grow pr-2\">\n {property?.name ? property.name : name}\n </Typography>\n\n <div className=\"flex flex-row items-center gap-2 mt-0.5\">\n {propertyConfig && <Typography variant={\"caption\"} component=\"span\" className=\"text-text-secondary dark:text-text-secondary-dark font-medium\">\n {propertyConfig?.name}\n </Typography>}\n\n {property && isPropertyBuilder(property) && <ErrorBoundary>\n <Typography variant=\"caption\" component=\"span\" className=\"text-text-disabled dark:text-text-disabled-dark\">\n Defined in code\n </Typography>\n </ErrorBoundary>}\n\n {!property && <ErrorBoundary>\n <Typography variant=\"caption\" component=\"span\" className=\"text-text-disabled dark:text-text-disabled-dark\">\n Additional field\n </Typography>\n </ErrorBoundary>}\n </div>\n </div>\n\n {property && !isPropertyBuilder(property) && <ErrorBoundary>\n <Typography variant=\"caption\" component=\"span\" className=\"ml-auto shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono bg-surface-100 dark:bg-surface-800 px-1.5 py-0.5 rounded mr-8\">\n {(\"columnType\" in property ? (property as unknown as Record<string, unknown>).columnType as string : undefined) || property.type}\n </Typography>\n </ErrorBoundary>}\n </Paper>\n </div>\n )\n}\n","import React, { createContext, useCallback, useContext, useState } from \"react\";\nimport { CollectionOperation } from \"../../api/generateCollectionApi\";\n\nexport interface AIModifiedPathsContextType {\n /** Set of paths that were modified by AI */\n modifiedPaths: Set<string>;\n /** Counter that increments each time AI modifies the collection - use in keys to force remount */\n generationCounter: number;\n /** Add paths from operations */\n addModifiedPaths: (operations: CollectionOperation[]) => void;\n /** Clear a specific path (when user edits that field) */\n clearPath: (path: string) => void;\n /** Clear all paths (on save or cancel) */\n clearAllPaths: () => void;\n /** Check if a path is modified */\n isPathModified: (path: string) => boolean;\n}\n\nconst AIModifiedPathsContext = createContext<AIModifiedPathsContextType | null>(null);\n\nexport function AIModifiedPathsProvider({ children }: { children: React.ReactNode | any }) {\n const [modifiedPaths, setModifiedPaths] = useState<Set<string>>(new Set());\n const [generationCounter, setGenerationCounter] = useState(0);\n\n const addModifiedPaths = useCallback((operations: CollectionOperation[]) => {\n setModifiedPaths(prev => {\n const newSet = new Set(prev);\n operations.forEach(op => {\n // Add the path and all parent paths for nested modifications\n newSet.add(op.path);\n // For properties modifications, also mark the property itself\n // e.g., \"properties.email.description\" -> also adds \"properties.email\"\n const parts = op.path.split(\".\");\n if (parts[0] === \"properties\" && parts.length >= 2) {\n newSet.add(`properties.${parts[1]}`);\n }\n });\n return newSet;\n });\n // Increment counter to force property form remount\n setGenerationCounter(prev => prev + 1);\n }, []);\n\n const clearPath = useCallback((path: string) => {\n setModifiedPaths(prev => {\n const newSet = new Set(prev);\n // Remove exact path and any child paths\n for (const p of newSet) {\n if (p === path || p.startsWith(path + \".\")) {\n newSet.delete(p);\n }\n }\n return newSet;\n });\n }, []);\n\n const clearAllPaths = useCallback(() => {\n setModifiedPaths(new Set());\n }, []);\n\n const isPathModified = useCallback((path: string): boolean => {\n // Check if this exact path or any parent path is modified\n if (modifiedPaths.has(path)) return true;\n // Check if any child paths are modified\n for (const p of modifiedPaths) {\n if (p.startsWith(path + \".\")) return true;\n }\n return false;\n }, [modifiedPaths]);\n\n return (\n <AIModifiedPathsContext.Provider value={{\n modifiedPaths,\n generationCounter,\n addModifiedPaths,\n clearPath,\n clearAllPaths,\n isPathModified\n }}>\n {children}\n </AIModifiedPathsContext.Provider>\n );\n}\n\nexport function useAIModifiedPaths(): AIModifiedPathsContextType | null {\n return useContext(AIModifiedPathsContext);\n}\n\n","import React from \"react\";\nimport { deepEqual as equal } from \"fast-equals\"\n\nimport { AIModifiedIndicator } from \"@rebasepro/core\";\nimport { AdditionalFieldDelegate, Properties, Property } from \"@rebasepro/types\";\nimport { isPropertyBuilder } from \"@rebasepro/common\";\nimport {\n FindInPageIcon,\n defaultBorderMixin,\n cls,\n DeleteIcon,\n IconButton,\n Menu,\n MenuItem,\n MoreVertIcon,\n Tooltip,\n VerticalAlignBottomIcon,\n VerticalAlignTopIcon\n} from \"@rebasepro/ui\";\nimport { NonEditablePropertyPreview, PropertyFieldPreview } from \"./PropertyFieldPreview\";\nimport {\n closestCenter,\n DndContext,\n DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors\n} from \"@dnd-kit/core\";\nimport {\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n verticalListSortingStrategy\n} from \"@dnd-kit/sortable\";\nimport { restrictToVerticalAxis } from \"@dnd-kit/modifiers\";\n\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { getFullId, getFullIdPath } from \"./util\";\n\nimport { useAIModifiedPaths } from \"./AIModifiedPathsContext\";\n\nexport const PropertyTree = React.memo(\n function PropertyTree<M extends {\n [Key: string]: unknown\n }>({\n namespace,\n selectedPropertyKey,\n onPropertyClick,\n properties,\n propertiesOrder: propertiesOrderProp,\n additionalFields,\n errors,\n onPropertyMove,\n onPropertyRemove,\n className,\n inferredPropertyKeys\n }: {\n namespace?: string;\n selectedPropertyKey?: string;\n onPropertyClick?: (propertyKey: string, namespace?: string) => void;\n properties: Properties;\n propertiesOrder?: string[];\n additionalFields?: AdditionalFieldDelegate<M>[];\n errors: Record<string, any>;\n onPropertyMove?: (propertiesOrder: string[], namespace?: string) => void;\n onPropertyRemove?: (propertyKey: string, namespace?: string) => void;\n className?: string;\n inferredPropertyKeys?: string[];\n }) {\n\n // Filter propertiesOrder to only include top-level keys (no dots) that exist in properties\n // Nested keys like \"data.mode\" are for column ordering in the table, not for the property editor\n const propertyKeys = Object.keys(properties);\n const filteredOrder = (propertiesOrderProp ?? propertyKeys)\n .filter(key => !key.includes(\".\") && properties[key as keyof typeof properties]);\n\n // Ensure all properties are included (append any missing ones)\n const missingKeys = propertyKeys.filter(key => !filteredOrder.includes(key));\n const propertiesOrder = [...filteredOrder, ...missingKeys];\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n distance: 5,\n }\n }),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\n const handleDragEnd = (event: DragEndEvent) => {\n const {\n active,\n over\n } = event;\n\n if (!over || active.id === over.id) {\n return;\n }\n\n const activeId = String(active.id);\n const overId = String(over.id);\n\n // Extract property keys from the full IDs\n const activeKey = activeId.includes(\".\") ? activeId.split(\".\").pop() : activeId;\n const overKey = overId.includes(\".\") ? overId.split(\".\").pop() : overId;\n\n if (!activeKey || !overKey) return;\n\n const oldIndex = propertiesOrder.indexOf(activeKey);\n const newIndex = propertiesOrder.indexOf(overKey);\n\n if (oldIndex !== -1 && newIndex !== -1) {\n const newPropertiesOrder = [...propertiesOrder];\n const [removed] = newPropertiesOrder.splice(oldIndex, 1);\n newPropertiesOrder.splice(newIndex, 0, removed);\n\n if (onPropertyMove) {\n onPropertyMove(newPropertiesOrder, namespace);\n }\n }\n };\n\n const items = propertiesOrder.map(key => getFullId(key, namespace));\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n modifiers={[restrictToVerticalAxis]}\n >\n <SortableContext\n items={items}\n strategy={verticalListSortingStrategy}\n >\n <div className={cls(\"flex flex-col gap-0.5\", className)}>\n\n {propertiesOrder && propertiesOrder\n .map((propertyKey: string, index: number) => {\n const property = properties[propertyKey];\n const additionalField = additionalFields?.find(field => field.key === propertyKey);\n\n if (!property && !additionalField) {\n console.warn(`Property ${propertyKey} not found in properties or additionalFields`);\n return null;\n }\n\n const id = getFullId(propertyKey, namespace);\n\n return (\n <PropertyTreeEntry\n key={id}\n id={id}\n propertyKey={propertyKey}\n property={property}\n additionalField={additionalField}\n errors={errors}\n namespace={namespace}\n propertiesOrder={propertiesOrder}\n inferredPropertyKeys={inferredPropertyKeys}\n onPropertyMove={onPropertyMove}\n onPropertyRemove={onPropertyRemove}\n onPropertyClick={onPropertyClick}\n selectedPropertyKey={selectedPropertyKey}\n\n />\n );\n }).filter(Boolean)}\n </div>\n </SortableContext>\n </DndContext>\n );\n },\n equal\n);\n\nexport function PropertyTreeEntry({\n id,\n propertyKey,\n namespace,\n property,\n additionalField,\n selectedPropertyKey,\n errors,\n propertiesOrder,\n onPropertyClick,\n onPropertyMove,\n onPropertyRemove,\n inferredPropertyKeys\n}: {\n id: string;\n propertyKey: string;\n namespace?: string;\n property: Property;\n additionalField?: AdditionalFieldDelegate<any>;\n selectedPropertyKey?: string;\n errors: Record<string, any>;\n propertiesOrder: string[];\n onPropertyClick?: (propertyKey: string, namespace?: string) => void;\n onPropertyMove?: (propertiesOrder: string[], namespace?: string) => void;\n onPropertyRemove?: (propertyKey: string, namespace?: string) => void;\n inferredPropertyKeys?: string[];\n}) {\n\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging\n } = useSortable({\n id\n });\n\n const style = {\n // Key change: use Translate instead of Transform to prevent stretching\n transform: CSS.Translate.toString(transform),\n transition,\n zIndex: isDragging ? 10 : undefined,\n position: \"relative\" as const,\n };\n\n const isPropertyInferred = inferredPropertyKeys?.includes(namespace ? `${namespace}.${propertyKey}` : propertyKey);\n const fullId = id;\n const fullIdPath = getFullIdPath(propertyKey, namespace);\n const hasError = fullIdPath in errors;\n\n let subtree;\n if (typeof property === \"object\") {\n if (property.type === \"map\" && property.properties) {\n subtree = <PropertyTree\n selectedPropertyKey={selectedPropertyKey}\n namespace={fullId}\n properties={property.properties}\n propertiesOrder={property.propertiesOrder}\n errors={errors}\n onPropertyClick={onPropertyClick}\n onPropertyMove={onPropertyMove}\n onPropertyRemove={onPropertyRemove}\n inferredPropertyKeys={inferredPropertyKeys}\n />\n }\n }\n\n const selected = selectedPropertyKey === fullId;\n const editable = property && !isPropertyBuilder(property);\n\n // Check if this property was AI-modified\n const aiModifiedPaths = useAIModifiedPaths();\n const isAIModified = aiModifiedPaths?.isPathModified(`properties.${propertyKey}`) ?? false;\n\n return (\n <div\n ref={setNodeRef}\n style={style}\n className=\"relative cursor-grab\"\n {...attributes}\n {...listeners}\n >\n <div className=\"relative\">\n {subtree && <div\n className={\"absolute border-l \" + defaultBorderMixin}\n style={{\n left: \"24px\",\n top: \"40px\",\n bottom: \"16px\"\n }} />}\n\n <div>\n {!isPropertyBuilder(property) && !additionalField && editable\n ? <PropertyFieldPreview\n property={property}\n onClick={onPropertyClick ? () => onPropertyClick(propertyKey, namespace) : undefined}\n includeName={true}\n selected={selected}\n hasError={hasError} />\n : <NonEditablePropertyPreview name={propertyKey}\n property={property}\n onClick={onPropertyClick ? () => onPropertyClick(propertyKey, namespace) : undefined}\n selected={selected} />}\n </div>\n\n <div className=\"absolute top-1/2 -translate-y-1/2 right-3 flex flex-row items-center gap-1\">\n {isAIModified && <AIModifiedIndicator />}\n {isPropertyInferred && <>\n <Tooltip title={\"Inferred property\"} asChild={true}>\n <IconButton size=\"smallest\" disabled>\n <FindInPageIcon size=\"smallest\" />\n </IconButton>\n </Tooltip>\n {onPropertyRemove && <Tooltip title={\"Remove inferred property\"}\n asChild={true}>\n <IconButton size=\"smallest\"\n color=\"inherit\"\n onClick={(e: React.MouseEvent) => {\n e.stopPropagation();\n onPropertyRemove(propertyKey, namespace);\n }}>\n <DeleteIcon size={\"smallest\"} />\n </IconButton>\n </Tooltip>}\n </>}\n\n <Menu\n trigger={\n <IconButton\n size=\"smallest\"\n >\n <MoreVertIcon size={\"smallest\"} />\n </IconButton>\n }\n >\n <MenuItem\n dense\n onClick={() => {\n const currentIndex = propertiesOrder.indexOf(propertyKey);\n if (currentIndex > 0) {\n const newOrder = propertiesOrder.filter(k => k !== propertyKey);\n newOrder.unshift(propertyKey);\n onPropertyMove?.(newOrder, namespace);\n }\n }}\n >\n <VerticalAlignTopIcon size=\"smallest\" />\n Move to top\n </MenuItem>\n <MenuItem\n dense\n onClick={() => {\n const currentIndex = propertiesOrder.indexOf(propertyKey);\n if (currentIndex < propertiesOrder.length - 1) {\n const newOrder = propertiesOrder.filter(k => k !== propertyKey);\n newOrder.push(propertyKey);\n onPropertyMove?.(newOrder, namespace);\n }\n }}\n >\n <VerticalAlignBottomIcon size=\"smallest\" />\n Move to bottom\n </MenuItem>\n <MenuItem\n dense\n onClick={() => onPropertyRemove?.(propertyKey, namespace)}\n >\n <DeleteIcon size=\"smallest\" />\n Delete\n </MenuItem>\n </Menu>\n\n </div>\n\n {subtree && <div className={\"ml-12\"}>{subtree}</div>}\n </div>\n </div>\n );\n}\n","import { FieldCaption } from \"../../../_cms_internals\";\nimport React, { useState } from \"react\";\n;\nimport { MapProperty, Property, PropertyConfig } from \"@rebasepro/types\";\nimport { AddIcon, BooleanSwitchWithLabel, Button, Paper, Typography } from \"@rebasepro/ui\";\nimport { PropertyFormDialog } from \"../PropertyEditView\";\nimport { getIn, useFormex } from \"@rebasepro/formex\";\nimport { PropertyTree } from \"../PropertyTree\";\nimport { getFullId, idToPropertiesPath, namespaceToPropertiesOrderPath, namespaceToPropertiesPath } from \"../util\";\n\nexport function MapPropertyField({ disabled, getData, allowDataInference, propertyConfigs }: {\n disabled: boolean;\n getData?: () => Promise<object[]>;\n allowDataInference: boolean;\n propertyConfigs: Record<string, PropertyConfig>,\n}) {\n\n const {\n values,\n setFieldValue\n } = useFormex<MapProperty>();\n\n const [propertyDialogOpen, setPropertyDialogOpen] = useState<boolean>(false);\n const [selectedPropertyKey, setSelectedPropertyKey] = useState<string | undefined>();\n const [selectedPropertyNamespace, setSelectedPropertyNamespace] = useState<string | undefined>();\n\n const propertiesOrder = values.propertiesOrder ?? Object.keys(values.properties ?? {});\n const onPropertyCreated = ({\n id,\n property\n }: { id?: string, property: Property }) => {\n if (!id)\n throw Error();\n setFieldValue(\"properties\", {\n ...(values.properties ?? {}),\n [id]: property\n }, false);\n\n const currentPropertiesOrder = values.propertiesOrder ?? Object.keys(values.properties ?? {});\n const newPropertiesOrder = currentPropertiesOrder.includes(id) ? currentPropertiesOrder : [...currentPropertiesOrder, id];\n setFieldValue(\"propertiesOrder\", newPropertiesOrder, false);\n\n setPropertyDialogOpen(false);\n };\n\n const deleteProperty = (propertyKey?: string, namespace?: string) => {\n const fullId = propertyKey ? getFullId(propertyKey, namespace) : undefined;\n if (!fullId)\n throw Error(\"collection editor miss config\");\n\n const propertiesPath = idToPropertiesPath(fullId);\n const propertiesOrderPath = namespaceToPropertiesOrderPath(namespace);\n\n const currentPropertiesOrder: string[] = getIn(values, propertiesOrderPath) ?? Object.keys(getIn(values, namespaceToPropertiesPath(namespace)));\n\n setFieldValue(propertiesPath, undefined, false);\n setFieldValue(propertiesOrderPath, currentPropertiesOrder.filter((p) => p !== propertyKey), false);\n\n setPropertyDialogOpen(false);\n setSelectedPropertyKey(undefined);\n setSelectedPropertyNamespace(undefined);\n };\n\n const selectedPropertyFullId = selectedPropertyKey ? getFullId(selectedPropertyKey, selectedPropertyNamespace) : undefined;\n const selectedProperty = selectedPropertyFullId ? getIn(values.properties, selectedPropertyFullId.replaceAll(\".\", \".properties.\")) : undefined;\n\n const empty = !propertiesOrder || propertiesOrder.length < 1;\n\n const onPropertyMove = (propertiesOrder: string[], namespace?: string) => {\n setFieldValue(namespaceToPropertiesOrderPath(namespace), propertiesOrder, false);\n };\n\n return (\n <>\n <div className={\"col-span-12\"}>\n <div className=\"flex justify-between items-end my-4\">\n <Typography variant={\"subtitle2\"}>Properties in this group</Typography>\n <Button\n onClick={() => setPropertyDialogOpen(true)}\n startIcon={<AddIcon />}\n >\n Add property to {values.name ?? \"this group\"}\n </Button>\n </div>\n <Paper className=\"p-2 pl-8\">\n <PropertyTree\n properties={values.properties ?? {}}\n propertiesOrder={propertiesOrder}\n errors={{}}\n\n onPropertyClick={(propertyKey, namespace) => {\n setSelectedPropertyKey(propertyKey);\n setSelectedPropertyNamespace(namespace);\n setPropertyDialogOpen(true);\n }}\n onPropertyMove={onPropertyMove} />\n\n {empty &&\n <Typography variant={\"label\"}\n className=\"h-full flex items-center justify-center p-4\">\n Add the first property to this group\n </Typography>}\n </Paper>\n </div>\n\n <div className={\"col-span-12\"}>\n <BooleanSwitchWithLabel\n position={\"start\"}\n size={\"medium\"}\n label=\"Spread children as columns\"\n onValueChange={(v) => setFieldValue(\"spreadChildren\", v)}\n value={values.spreadChildren ?? false}\n />\n <FieldCaption>\n Set this flag to true if you want to display the children of this group as individual columns. This\n will only work for top level groups.\n </FieldCaption>\n </div>\n\n <PropertyFormDialog\n inArray={false}\n forceShowErrors={false}\n open={propertyDialogOpen}\n allowDataInference={allowDataInference}\n\n onCancel={() => {\n setPropertyDialogOpen(false);\n setSelectedPropertyKey(undefined);\n setSelectedPropertyNamespace(undefined);\n }}\n onOkClicked={() => {\n setPropertyDialogOpen(false);\n setSelectedPropertyKey(undefined);\n setSelectedPropertyNamespace(undefined);\n }}\n getData={getData}\n onDelete={deleteProperty}\n propertyKey={selectedPropertyKey}\n propertyNamespace={selectedPropertyNamespace}\n property={selectedProperty}\n existingProperty={Boolean(selectedPropertyKey)}\n autoUpdateId={!selectedPropertyKey}\n autoOpenTypeSelect={!selectedPropertyKey}\n onPropertyChanged={onPropertyCreated}\n existingPropertyKeys={selectedPropertyKey ? undefined : propertiesOrder}\n propertyConfigs={propertyConfigs}\n />\n\n </>);\n}\n","import React, { useState } from \"react\";\nimport { getFieldConfig } from \"../../../_cms_internals\";\nimport { ArrayProperty, Property, PropertyConfig } from \"@rebasepro/types\";\nimport { Button, Paper, Typography } from \"@rebasepro/ui\";\nimport { Field, getIn, useFormex } from \"@rebasepro/formex\";\nimport { PropertyFormDialog } from \"../PropertyEditView\";\nimport { PropertyFieldPreview } from \"../PropertyFieldPreview\";\nimport { ArrayPropertyValidation } from \"./validation/ArrayPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\n\nexport function RepeatPropertyField({\n showErrors,\n existing,\n disabled,\n getData,\n allowDataInference,\n propertyConfigs\n}: {\n showErrors: boolean,\n existing: boolean,\n disabled: boolean,\n getData?: () => Promise<object[]>;\n allowDataInference: boolean;\n propertyConfigs: Record<string, PropertyConfig>,\n}) {\n\n const {\n values,\n handleChange,\n errors,\n setFieldValue,\n touched\n } = useFormex<ArrayProperty>();\n\n const [propertyDialogOpen, setPropertyDialogOpen] = useState(false);\n const ofProperty = getIn(values, \"of\");\n const ofPropertyError = getIn(touched, \"of\") && getIn(errors, \"of\");\n\n const onPropertyChanged = ({ id, property, namespace }:\n { id?: string, property: Property, namespace?: string }) => {\n setFieldValue(\"of\", property);\n };\n\n const widget = ofProperty && getFieldConfig(ofProperty, propertyConfigs);\n return (\n <>\n <div className={\"col-span-12\"}>\n <Typography variant={\"subtitle2\"}>\n Repeat component\n </Typography>\n <Field\n name={\"of\"}\n value={ofProperty}\n // validate={(property: Property) => {\n // return property?.type ? undefined : \"You need to specify a repeat field\";\n // }}\n >\n {({ }) => (\n <Paper className=\"p-2 mt-4\">\n\n {ofProperty && <PropertyFieldPreview\n property={ofProperty}\n onClick={disabled ? undefined : () => setPropertyDialogOpen(true)}\n includeName={false}\n includeEditButton={true}\n selected={false}\n hasError={false} />}\n\n {!disabled && !ofProperty && <Button variant={\"text\"}\n color={ofPropertyError ? \"error\" : \"primary\"}\n onClick={() => setPropertyDialogOpen(true)}>\n Edit {`${widget ? widget.name : \"repeat component\"}`}\n </Button>}\n\n <PropertyFormDialog\n inArray={true}\n open={propertyDialogOpen}\n existingProperty={existing}\n getData={getData}\n autoUpdateId={!existing}\n autoOpenTypeSelect={!existing}\n onOkClicked={() => setPropertyDialogOpen(false)}\n allowDataInference={allowDataInference}\n property={ofProperty}\n includeIdAndName={false}\n onPropertyChanged={onPropertyChanged}\n forceShowErrors={showErrors}\n propertyConfigs={propertyConfigs}\n\n />\n </Paper>\n )}\n </Field>\n\n </div>\n\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n <ArrayPropertyValidation disabled={disabled} />\n </ValidationPanel>\n\n </div>\n </>\n );\n}\n","import { FieldCaption } from \"../../../_cms_internals\";\nimport { Field, getIn, useFormex } from \"@rebasepro/formex\";\nimport { DebouncedTextField } from \"@rebasepro/ui\";\nimport { PropertyWithId } from \"../PropertyEditView\";\nimport React from \"react\";\n;\nimport { prettifyIdentifier, toSnakeCase } from \"@rebasepro/utils\";\n\ntype CommonPropertyFieldsProps = {\n showErrors: boolean,\n disabledId: boolean,\n disabled: boolean;\n isNewProperty: boolean;\n autoUpdateId: boolean;\n};\n\nexport const CommonPropertyFields = React.forwardRef<HTMLDivElement, CommonPropertyFieldsProps>(\n function CommonPropertyFields({\n showErrors,\n disabledId,\n disabled,\n autoUpdateId,\n isNewProperty\n }, ref) {\n\n const {\n errors,\n values,\n setFieldValue,\n setFieldTouched,\n touched,\n validate\n } = useFormex<PropertyWithId>();\n\n const name = \"name\";\n const nameError = showErrors && getIn(errors, name);\n\n const id = \"id\";\n const idError = showErrors && getIn(errors, id);\n\n const description = \"description\";\n const descriptionError = showErrors && getIn(errors, description);\n\n return (\n <div className={\"flex flex-col gap-2 col-span-12\"}>\n\n <div>\n <Field\n name={name}\n inputRef={ref}\n as={DebouncedTextField}\n value={values[name]}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const newNameValue = e.target.value;\n const idTouched = getIn(touched, id);\n if (!idTouched && autoUpdateId) {\n setFieldValue(id, newNameValue ? toSnakeCase(newNameValue) : \"\", false)\n }\n setFieldValue(name, newNameValue, true);\n setFieldTouched(name, true);\n }}\n style={{ fontSize: 20 }}\n placeholder={\"Field name\"}\n required\n disabled={disabled}\n error={Boolean(nameError)} />\n\n <FieldCaption error={Boolean(nameError)}>\n {nameError}\n </FieldCaption>\n </div>\n\n <div>\n <DebouncedTextField\n name={id}\n label={\"ID\"}\n value={values[id]}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n const newIdValue = e.target.value;\n const nameTouched = getIn(touched, name);\n if (!nameTouched && autoUpdateId) {\n setFieldValue(name, newIdValue ? prettifyIdentifier(newIdValue) : \"\")\n }\n setFieldValue(id, newIdValue, true);\n setFieldTouched(id, true);\n }}\n disabled={disabledId || disabled}\n required\n size=\"small\"\n error={Boolean(idError)} />\n <FieldCaption error={Boolean(idError)}>\n {idError}\n </FieldCaption>\n </div>\n\n <div>\n <Field name={description}\n as={DebouncedTextField}\n label={\"Description\"}\n disabled={disabled}\n error={Boolean(descriptionError)} />\n <FieldCaption error={Boolean(descriptionError)}>\n {descriptionError}\n </FieldCaption>\n </div>\n\n </div>\n );\n\n }\n);\n","import { FieldCaption } from \"../../../_cms_internals\";\nimport React from \"react\";\nimport { StringPropertyValidation } from \"./validation/StringPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\nimport { getIn, useFormex } from \"@rebasepro/formex\";\n;\nimport { Select, SelectItem, TextField } from \"@rebasepro/ui\";\n\nexport function StringPropertyField({\n widgetId,\n disabled,\n showErrors\n}: {\n widgetId: \"text_field\" | \"multiline\" | \"email\" | \"user_select\";\n disabled: boolean;\n showErrors: boolean;\n}) {\n\n const { values, setFieldValue, touched, errors } = useFormex();\n\n const columnTypePath = \"columnType\";\n const columnTypeValue: string | undefined = getIn(values, columnTypePath);\n const columnTypeError: string | undefined = getIn(touched, columnTypePath) && getIn(errors, columnTypePath);\n\n const isIdPath = \"isId\";\n const isIdValue: string | boolean | undefined = getIn(values, isIdPath);\n const isIdError: string | undefined = getIn(touched, isIdPath) && getIn(errors, isIdPath);\n\n return (\n <>\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n\n {widgetId === \"text_field\" &&\n <StringPropertyValidation disabled={disabled}\n length={true}\n lowercase={true}\n matches={true}\n max={true}\n min={true}\n trim={true}\n uppercase={true}\n showErrors={showErrors} />}\n {widgetId === \"user_select\" &&\n <StringPropertyValidation disabled={disabled}\n showErrors={showErrors} />}\n\n {widgetId === \"multiline\" &&\n <StringPropertyValidation disabled={disabled}\n length={true}\n lowercase={true}\n max={true}\n min={true}\n trim={true}\n uppercase={true}\n showErrors={showErrors} />}\n\n {widgetId === \"email\" &&\n <StringPropertyValidation disabled={disabled}\n max={true}\n min={true}\n trim={true}\n showErrors={showErrors} />}\n\n </ValidationPanel>\n\n </div>\n \n <div className={\"col-span-12\"}>\n <Select name={columnTypePath}\n disabled={disabled || Boolean(isIdValue)}\n fullWidth={true}\n value={isIdValue === \"uuid\" ? \"uuid\" : (columnTypeValue ?? \"_default_\")}\n onValueChange={(v) => setFieldValue(columnTypePath, v === \"_default_\" ? undefined : v)}\n renderValue={(v) => {\n if (isIdValue === \"uuid\") return \"uuid (forced by Primary Key)\";\n switch (v) {\n case \"text\": return \"text (unlimited)\";\n case \"char\": return \"char (fixed length)\";\n case \"varchar\": return \"varchar (variable length)\";\n case \"_default_\": return \"Default (varchar)\";\n default: return \"Default (varchar)\";\n }\n }}\n error={Boolean(columnTypeError)}\n label={\"Database Column Type\"}>\n {isIdValue === \"uuid\" && <SelectItem value={\"uuid\"}> uuid (forced by Primary Key) </SelectItem>}\n <SelectItem value={\"_default_\"}> Default (varchar) </SelectItem>\n <SelectItem value={\"varchar\"}> varchar (variable length) </SelectItem>\n <SelectItem value={\"text\"}> text (unlimited) </SelectItem>\n <SelectItem value={\"char\"}> char (fixed length) </SelectItem>\n </Select>\n <FieldCaption error={Boolean(columnTypeError)}>\n {columnTypeError ?? \"Optional database override for this string field.\"}\n </FieldCaption>\n </div>\n\n <div className={\"col-span-12\"}>\n <Select name={isIdPath}\n disabled={disabled}\n fullWidth={true}\n value={isIdValue === true ? \"true\" : (isIdValue === false ? \"false\" : (isIdValue ?? \"_default_\"))}\n onValueChange={(v) => {\n if (v === \"_default_\" || v === \"false\") setFieldValue(isIdPath, undefined);\n else if (v === \"true\") setFieldValue(isIdPath, true);\n else setFieldValue(isIdPath, v);\n }}\n renderValue={(v) => {\n switch (v) {\n case \"true\": return \"Yes (Auto-generated UUID/String)\";\n case \"manual\": return \"Yes (Manual input)\";\n case \"uuid\": return \"Yes (UUID)\";\n case \"cuid\": return \"Yes (CUID)\";\n case \"false\":\n case \"_default_\": return \"No\";\n default: return `Yes (${v})`;\n }\n }}\n error={Boolean(isIdError)}\n label={\"Primary Key / Unique ID\"}>\n <SelectItem value={\"_default_\"}> No </SelectItem>\n <SelectItem value={\"manual\"}> Yes (Manual input) </SelectItem>\n <SelectItem value={\"true\"}> Yes (Auto-generated UUID/String) </SelectItem>\n <SelectItem value={\"uuid\"}> Yes (UUID) </SelectItem>\n <SelectItem value={\"cuid\"}> Yes (CUID) </SelectItem>\n </Select>\n <FieldCaption error={Boolean(isIdError)}>\n {isIdError ?? \"Set as Primary Key and configure ID generation strategy.\"}\n </FieldCaption>\n </div>\n\n <div className={\"col-span-12\"}>\n\n <TextField name={\"defaultValue\"}\n disabled={disabled}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setFieldValue(\"defaultValue\", e.target.value === \"\" ? undefined : e.target.value);\n }}\n label={\"Default value\"}\n value={getIn(values, \"defaultValue\") ?? \"\"} />\n\n </div>\n </>\n );\n}\n","import React from \"react\";\nimport { Field, FormexFieldProps, getIn, useFormex } from \"@rebasepro/formex\";\n\nimport { GeneralPropertyValidation } from \"./validation/GeneralPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\nimport { SwitchControl } from \"../SwitchControl\";\n\nexport function BooleanPropertyField({ disabled }: {\n disabled: boolean;\n}) {\n const { values } = useFormex();\n const defaultValue = getIn(values, \"defaultValue\");\n\n return (\n <>\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n <GeneralPropertyValidation disabled={disabled} />\n </ValidationPanel>\n\n </div>\n\n <div className={\"col-span-12\"}>\n\n <Field\n name={\"defaultValue\"}>\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n size={\"medium\"}\n label={defaultValue === null || defaultValue === undefined ? \"Default value not set\" : (\"Default value is \" + defaultValue.toString())}\n disabled={disabled}\n allowIndeterminate={true} field={field}\n form={form} />\n }}\n </Field>\n\n </div>\n </>\n );\n}\n","import React, { useState } from \"react\";\nimport { AddIcon, Button, Paper, Typography } from \"@rebasepro/ui\";\nimport { getIn, useFormex } from \"@rebasepro/formex\";\nimport { OnPropertyChangedParams, PropertyFormDialog } from \"../PropertyEditView\";\nimport {\n getFullId,\n getFullIdPath,\n idToPropertiesPath,\n namespaceToPropertiesOrderPath,\n namespaceToPropertiesPath\n} from \"../util\";\nimport { PropertyTree } from \"../PropertyTree\";\nimport { ArrayProperty, PropertyConfig } from \"@rebasepro/types\";\n\nexport function BlockPropertyField({\n disabled,\n getData,\n allowDataInference,\n propertyConfigs\n}: {\n disabled: boolean;\n getData?: () => Promise<object[]>;\n allowDataInference: boolean;\n propertyConfigs: Record<string, PropertyConfig>,\n}) {\n\n const {\n values,\n setFieldValue\n } = useFormex<ArrayProperty>();\n\n const [propertyDialogOpen, setPropertyDialogOpen] = useState<boolean>(false);\n const [selectedPropertyKey, setSelectedPropertyKey] = useState<string | undefined>();\n const [selectedPropertyNamespace, setSelectedPropertyNamespace] = useState<string | undefined>();\n\n const onPropertyChanged = ({\n id,\n namespace,\n property\n }: OnPropertyChangedParams) => {\n if (!id)\n throw Error();\n\n setFieldValue(\"oneOf.\" + getFullIdPath(id, namespace), property, false);\n\n const currentPropertiesOrder = values.oneOf?.propertiesOrder ?? Object.keys(values.oneOf?.properties ?? {});\n const newPropertiesOrder = currentPropertiesOrder.includes(id) ? currentPropertiesOrder : [...currentPropertiesOrder, id];\n setFieldValue(\"oneOf.\" + namespaceToPropertiesOrderPath(namespace), newPropertiesOrder, false);\n setPropertyDialogOpen(false);\n };\n\n const selectedPropertyFullId = selectedPropertyKey ? getFullId(selectedPropertyKey, selectedPropertyNamespace) : undefined;\n const selectedProperty = selectedPropertyFullId ? getIn(values.oneOf?.properties, selectedPropertyFullId.replaceAll(\".\", \".properties.\")) : undefined;\n\n const deleteProperty = (propertyKey?: string, namespace?: string) => {\n const fullId = propertyKey ? getFullId(propertyKey, namespace) : undefined;\n if (!fullId)\n throw Error(\"collection editor miss config\");\n\n setFieldValue(`oneOf.${idToPropertiesPath(fullId)}`, undefined, false);\n const propertiesOrderPath = `oneOf.${namespaceToPropertiesOrderPath(namespace)}`;\n const currentPropertiesOrder: string[] = getIn(values, propertiesOrderPath) ?? Object.keys(getIn(values, namespaceToPropertiesPath(namespace)));\n setFieldValue(propertiesOrderPath, currentPropertiesOrder.filter((p) => p !== propertyKey), false);\n\n setPropertyDialogOpen(false);\n setSelectedPropertyKey(undefined);\n setSelectedPropertyNamespace(undefined);\n };\n\n const addChildButton = <Button\n autoFocus\n onClick={() => setPropertyDialogOpen(true)}\n startIcon={<AddIcon />}\n >\n Add property to {values.name ?? \"this block\"}\n </Button>;\n\n const onPropertyMove = (propertiesOrder: string[], namespace?: string) => {\n setFieldValue(`oneOf.${namespaceToPropertiesOrderPath(namespace)}`, propertiesOrder, false);\n };\n\n return (\n <>\n <div className={\"col-span-12\"}>\n <div className={\"flex justify-between items-end mt-8 mb-4\"}>\n <Typography variant={\"subtitle2\"}>\n Properties in this block\n </Typography>\n {addChildButton}\n </div>\n <Paper className=\"p-2 pl-8\">\n\n <PropertyTree\n properties={values.oneOf?.properties ?? {}}\n propertiesOrder={values.oneOf?.propertiesOrder}\n errors={{}}\n\n onPropertyClick={disabled\n ? undefined\n : (propertyKey, namespace) => {\n setSelectedPropertyKey(propertyKey);\n setSelectedPropertyNamespace(namespace);\n setPropertyDialogOpen(true);\n }}\n onPropertyMove={disabled\n ? undefined\n : onPropertyMove} />\n\n {!disabled && (values.oneOf?.propertiesOrder?.length === 0) &&\n <div className=\"h-full flex items-center justify-center p-4\">\n Add the first property to this block\n </div>}\n\n </Paper>\n </div>\n\n {!disabled && <PropertyFormDialog\n inArray={false}\n forceShowErrors={false}\n open={propertyDialogOpen}\n getData={getData}\n allowDataInference={allowDataInference}\n onCancel={() => {\n setPropertyDialogOpen(false);\n setSelectedPropertyKey(undefined);\n setSelectedPropertyNamespace(undefined);\n }}\n onOkClicked={() => {\n setPropertyDialogOpen(false);\n setSelectedPropertyKey(undefined);\n setSelectedPropertyNamespace(undefined);\n }}\n\n onDelete={deleteProperty}\n propertyKey={selectedPropertyKey}\n propertyNamespace={selectedPropertyNamespace}\n property={selectedProperty}\n existingProperty={Boolean(selectedPropertyKey)}\n autoUpdateId={!selectedPropertyKey}\n autoOpenTypeSelect={!selectedPropertyKey}\n onPropertyChanged={onPropertyChanged}\n existingPropertyKeys={selectedPropertyKey ? undefined : values.oneOf?.propertiesOrder}\n propertyConfigs={propertyConfigs} />}\n\n </>);\n}\n","import React from \"react\";\n\nimport { Field, FormexFieldProps, getIn, useFormex } from \"@rebasepro/formex\";\nimport { DebouncedTextField } from \"@rebasepro/ui\";\nimport { GeneralPropertyValidation } from \"./GeneralPropertyValidation\";\nimport { SwitchControl } from \"../../SwitchControl\";\n\nexport function NumberPropertyValidation({ disabled }: {\n disabled: boolean;\n}) {\n\n const {\n values,\n handleChange\n } = useFormex();\n\n const validationMin = \"validation.min\";\n const validationMax = \"validation.max\";\n const validationLessThan = \"validation.lessThan\";\n const validationMoreThan = \"validation.moreThan\";\n const validationPositive = \"validation.positive\";\n const validationNegative = \"validation.negative\";\n const validationInteger = \"validation.integer\";\n\n return (\n\n <div className={\"grid grid-cols-12 gap-2\"}>\n <GeneralPropertyValidation disabled={disabled} />\n\n\n <div className={\"col-span-6\"}>\n <DebouncedTextField value={getIn(values, validationMin)}\n label={\"Min value\"}\n name={validationMin}\n type=\"number\"\n size=\"small\"\n disabled={disabled}\n onChange={handleChange} />\n </div>\n\n <div className={\"col-span-6\"}>\n <DebouncedTextField value={getIn(values, validationMax)}\n label={\"Max value\"}\n name={validationMax}\n type=\"number\"\n size=\"small\"\n\n disabled={disabled}\n onChange={handleChange} />\n </div>\n\n\n <div className={\"col-span-6\"}>\n <DebouncedTextField\n value={getIn(values, validationLessThan)}\n label={\"Less than\"}\n name={validationLessThan}\n type=\"number\"\n size=\"small\"\n\n disabled={disabled}\n onChange={handleChange} />\n </div>\n\n <div className={\"col-span-6\"}>\n <DebouncedTextField\n value={getIn(values, validationMoreThan)}\n label={\"More than\"}\n name={validationMoreThan}\n type=\"number\"\n size=\"small\"\n\n disabled={disabled}\n onChange={handleChange} />\n </div>\n\n <div className={\"col-span-4\"}>\n <Field name={validationPositive}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Positive value\"}\n disabled={disabled}\n form={form}\n field={field} />\n }}\n </Field>\n </div>\n <div className={\"col-span-4\"}>\n <Field name={validationNegative}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Negative value\"}\n disabled={disabled}\n form={form}\n field={field} />\n }}\n </Field>\n </div>\n <div className={\"col-span-4\"}>\n <Field name={validationInteger}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Integer value\"}\n disabled={disabled}\n form={form}\n field={field} />\n }}\n </Field>\n </div>\n </div>\n );\n}\n","import { FieldCaption } from \"../../../_cms_internals\";\nimport React from \"react\";\nimport { NumberPropertyValidation } from \"./validation/NumberPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\n;\nimport { Select, SelectItem, TextField } from \"@rebasepro/ui\";\nimport { getIn, useFormex } from \"@rebasepro/formex\";\n\nexport function NumberPropertyField({ disabled }: {\n disabled: boolean;\n}) {\n\n const { values, setFieldValue, touched, errors } = useFormex();\n\n const columnTypePath = \"columnType\";\n const columnTypeValue: string | undefined = getIn(values, columnTypePath);\n const columnTypeError: string | undefined = getIn(touched, columnTypePath) && getIn(errors, columnTypePath);\n\n const isIdPath = \"isId\";\n const isIdValue: string | boolean | undefined = getIn(values, isIdPath);\n const isIdError: string | undefined = getIn(touched, isIdPath) && getIn(errors, isIdPath);\n\n return (\n <>\n\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n <NumberPropertyValidation disabled={disabled} />\n </ValidationPanel>\n\n </div>\n\n <div className={\"col-span-12\"}>\n <Select name={columnTypePath}\n disabled={disabled || Boolean(isIdValue)}\n fullWidth={true}\n value={columnTypeValue ?? \"_default_\"}\n onValueChange={(v) => setFieldValue(columnTypePath, v === \"_default_\" ? undefined : v)}\n renderValue={(v) => {\n switch (v) {\n case \"integer\": return \"integer\";\n case \"real\": return \"real (float4)\";\n case \"double precision\": return \"double precision (float8)\";\n case \"numeric\": return \"numeric / decimal\";\n case \"bigint\": return \"bigint\";\n case \"serial\": return \"serial\";\n case \"bigserial\": return \"bigserial\";\n case \"_default_\": return \"Default (integer/numeric)\";\n default: return \"Default (integer/numeric)\";\n }\n }}\n error={Boolean(columnTypeError)}\n label={\"Database Column Type\"}>\n <SelectItem value={\"_default_\"}> Default (integer/numeric) </SelectItem>\n <SelectItem value={\"integer\"}> integer </SelectItem>\n <SelectItem value={\"real\"}> real (float4) </SelectItem>\n <SelectItem value={\"double precision\"}> double precision (float8) </SelectItem>\n <SelectItem value={\"numeric\"}> numeric / decimal </SelectItem>\n <SelectItem value={\"bigint\"}> bigint </SelectItem>\n <SelectItem value={\"serial\"}> serial </SelectItem>\n <SelectItem value={\"bigserial\"}> bigserial </SelectItem>\n </Select>\n <FieldCaption error={Boolean(columnTypeError)}>\n {columnTypeError ?? \"Optional database override for this number field.\"}\n </FieldCaption>\n </div>\n\n <div className={\"col-span-12\"}>\n <Select name={isIdPath}\n disabled={disabled}\n fullWidth={true}\n value={isIdValue === true ? \"true\" : (isIdValue === false ? \"false\" : (isIdValue ?? \"_default_\"))}\n onValueChange={(v) => {\n if (v === \"_default_\" || v === \"false\") setFieldValue(isIdPath, undefined);\n else if (v === \"true\") setFieldValue(isIdPath, true);\n else setFieldValue(isIdPath, v);\n }}\n renderValue={(v) => {\n switch (v) {\n case \"true\": return \"Yes (Auto-increment/identity)\";\n case \"increment\": return \"Yes (Increment)\";\n case \"manual\": return \"Yes (Manual input)\";\n case \"false\":\n case \"_default_\": return \"No\";\n default: return `Yes (${v})`;\n }\n }}\n error={Boolean(isIdError)}\n label={\"Primary Key / Unique ID\"}>\n <SelectItem value={\"_default_\"}> No </SelectItem>\n <SelectItem value={\"manual\"}> Yes (Manual input) </SelectItem>\n <SelectItem value={\"true\"}> Yes (Auto-increment/identity) </SelectItem>\n <SelectItem value={\"increment\"}> Yes (Increment) </SelectItem>\n </Select>\n <FieldCaption error={Boolean(isIdError)}>\n {isIdError ?? \"Set as Primary Key and configure ID generation strategy.\"}\n </FieldCaption>\n </div>\n\n <div className={\"col-span-12\"}>\n\n <TextField name={\"defaultValue\"}\n disabled={disabled}\n type={\"number\"}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setFieldValue(\"defaultValue\", e.target.value === \"\" ? undefined : parseFloat(e.target.value));\n }}\n label={\"Default value\"}\n value={getIn(values, \"defaultValue\") ?? \"\"} />\n\n </div>\n </>\n );\n}\n","import { IconForView } from \"@rebasepro/core\";\nimport { FieldCaption, useCollectionRegistryController } from \"../../../_cms_internals\";\nimport React from \"react\";\nimport { Field, getIn, useFormex } from \"@rebasepro/formex\";\n;\nimport { NumberProperty, StringProperty } from \"@rebasepro/types\";\nimport { CircularProgress, Select, SelectGroup, SelectItem, Typography, } from \"@rebasepro/ui\";\n\nexport function ReferencePropertyField({\n existing,\n multiple,\n disabled,\n showErrors,\n asString\n}: {\n existing: boolean,\n multiple: boolean,\n disabled: boolean,\n showErrors: boolean,\n asString?: boolean\n}) {\n\n const {\n values,\n errors,\n setFieldValue,\n } = useFormex<StringProperty | NumberProperty>();\n\n const collectionRegistry = useCollectionRegistryController();\n\n if (!collectionRegistry.initialised)\n return <div className={\"col-span-12\"}>\n <CircularProgress />\n </div>;\n\n const pathPath = asString ? \"reference.slug\" : (multiple ? \"of.slug\" : \"path\");\n const pathValue: string | undefined = getIn(values, pathPath);\n const pathError: string | undefined = showErrors && getIn(errors, pathPath);\n\n return (\n <>\n <div className={\"col-span-12\"}>\n\n <Field name={pathPath}\n pathPath={pathPath}\n type=\"select\"\n disabled={disabled}\n value={pathValue}\n error={pathError}\n setFieldValue={setFieldValue}\n as={CollectionsSelect} />\n\n </div>\n\n </>\n );\n}\n\nexport function CollectionsSelect({\n disabled,\n pathPath,\n value,\n setFieldValue,\n error,\n ...props\n}: {\n disabled: boolean,\n pathPath: string,\n value?: string,\n setFieldValue: (field: string, value: string) => void,\n error?: string\n}) {\n\n const collectionRegistry = useCollectionRegistryController();\n\n if (!collectionRegistry.initialised)\n return <div className={\"col-span-12\"}>\n <CircularProgress />\n </div>;\n\n const collections = collectionRegistry.collections ?? [];\n\n const groups: string[] = Array.from(new Set(\n Object.values(collections).map(e => e.group).filter(Boolean) as string[]\n ).values());\n\n const ungroupedCollections = collections.filter((col) => !col.group);\n\n return (\n <>\n <Select\n error={Boolean(error)}\n disabled={disabled}\n value={value ?? \"\"}\n position={\"item-aligned\"}\n name={pathPath}\n fullWidth={true}\n onChange={(e: React.ChangeEvent<HTMLSelectElement>) => setFieldValue(pathPath, e.target.value)}\n label={\"Target collection\"}\n renderValue={(selected: string) => {\n const selectedCollection = collections.find(collection => collection.slug === selected);\n if (!selectedCollection) return null;\n return (\n <div className=\"flex flex-row\">\n <IconForView collectionOrView={selectedCollection} />\n <Typography\n variant={\"subtitle2\"}\n className=\"ml-4\">\n {selectedCollection?.name.toUpperCase()}\n </Typography>\n </div>)\n }}\n {...props}>\n\n {groups.flatMap((group) => (\n <SelectGroup label={group || \"Views\"}\n key={`group_${group}`}>\n {\n collections.filter(collection => collection.group === group)\n .map((collection) => {\n return <SelectItem\n key={`${collection.slug}-${group}`}\n value={collection.slug}>\n <div className=\"flex flex-row\">\n <IconForView collectionOrView={collection} />\n <Typography\n variant={\"subtitle2\"}\n className=\"ml-4\">\n {collection?.name.toUpperCase()}\n </Typography>\n </div>\n </SelectItem>;\n })\n\n }\n </SelectGroup>\n ))}\n\n {ungroupedCollections && <SelectGroup label={\"Views\"}>\n {ungroupedCollections\n .map((collection) => {\n return <SelectItem key={collection.slug}\n value={collection.slug}>\n <div className=\"flex flex-row\">\n <IconForView collectionOrView={collection} />\n <Typography\n variant={\"subtitle2\"}\n className=\"ml-4\">\n {collection?.name.toUpperCase()}\n </Typography>\n </div>\n </SelectItem>;\n })\n\n }\n </SelectGroup>}\n\n </Select>\n\n </>\n );\n}\n","import { FieldCaption } from \"../../../_cms_internals\";\nimport React from \"react\";\nimport { getIn, useFormex } from \"@rebasepro/formex\";\n;\nimport { NumberProperty, StringProperty } from \"@rebasepro/types\";\nimport { Select, SelectItem } from \"@rebasepro/ui\";\nimport { GeneralPropertyValidation } from \"./validation/GeneralPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\n\n// Common IANA timezones with human-readable labels\nconst TIMEZONES = [\n // UTC\n { value: \"UTC\", label: \"UTC (Coordinated Universal Time)\" },\n // Americas\n { value: \"America/New_York\", label: \"New York (US Eastern)\" },\n { value: \"America/Chicago\", label: \"Chicago (US Central)\" },\n { value: \"America/Denver\", label: \"Denver (US Mountain)\" },\n { value: \"America/Los_Angeles\", label: \"Los Angeles (US Pacific)\" },\n { value: \"America/Anchorage\", label: \"Anchorage (Alaska)\" },\n { value: \"America/Toronto\", label: \"Toronto (Canada Eastern)\" },\n { value: \"America/Vancouver\", label: \"Vancouver (Canada Pacific)\" },\n { value: \"America/Mexico_City\", label: \"Mexico City\" },\n { value: \"America/Sao_Paulo\", label: \"São Paulo (Brazil)\" },\n { value: \"America/Buenos_Aires\", label: \"Buenos Aires (Argentina)\" },\n // Europe\n { value: \"Europe/London\", label: \"London (UK)\" },\n { value: \"Europe/Paris\", label: \"Paris (France)\" },\n { value: \"Europe/Berlin\", label: \"Berlin (Germany)\" },\n { value: \"Europe/Madrid\", label: \"Madrid (Spain)\" },\n { value: \"Europe/Rome\", label: \"Rome (Italy)\" },\n { value: \"Europe/Amsterdam\", label: \"Amsterdam (Netherlands)\" },\n { value: \"Europe/Brussels\", label: \"Brussels (Belgium)\" },\n { value: \"Europe/Zurich\", label: \"Zurich (Switzerland)\" },\n { value: \"Europe/Stockholm\", label: \"Stockholm (Sweden)\" },\n { value: \"Europe/Vienna\", label: \"Vienna (Austria)\" },\n { value: \"Europe/Warsaw\", label: \"Warsaw (Poland)\" },\n { value: \"Europe/Prague\", label: \"Prague (Czech Republic)\" },\n { value: \"Europe/Athens\", label: \"Athens (Greece)\" },\n { value: \"Europe/Moscow\", label: \"Moscow (Russia)\" },\n { value: \"Europe/Istanbul\", label: \"Istanbul (Turkey)\" },\n // Asia\n { value: \"Asia/Dubai\", label: \"Dubai (UAE)\" },\n { value: \"Asia/Kolkata\", label: \"Mumbai / Delhi (India)\" },\n { value: \"Asia/Bangkok\", label: \"Bangkok (Thailand)\" },\n { value: \"Asia/Singapore\", label: \"Singapore\" },\n { value: \"Asia/Hong_Kong\", label: \"Hong Kong\" },\n { value: \"Asia/Shanghai\", label: \"Shanghai (China)\" },\n { value: \"Asia/Tokyo\", label: \"Tokyo (Japan)\" },\n { value: \"Asia/Seoul\", label: \"Seoul (South Korea)\" },\n { value: \"Asia/Jakarta\", label: \"Jakarta (Indonesia)\" },\n // Oceania\n { value: \"Australia/Sydney\", label: \"Sydney (Australia Eastern)\" },\n { value: \"Australia/Melbourne\", label: \"Melbourne (Australia)\" },\n { value: \"Australia/Brisbane\", label: \"Brisbane (Australia)\" },\n { value: \"Australia/Perth\", label: \"Perth (Australia Western)\" },\n { value: \"Pacific/Auckland\", label: \"Auckland (New Zealand)\" },\n // Africa\n { value: \"Africa/Cairo\", label: \"Cairo (Egypt)\" },\n { value: \"Africa/Johannesburg\", label: \"Johannesburg (South Africa)\" },\n { value: \"Africa/Lagos\", label: \"Lagos (Nigeria)\" },\n];\n\nexport function DateTimePropertyField({ disabled }: {\n disabled: boolean;\n}) {\n\n const {\n values,\n errors,\n touched,\n setFieldValue\n } = useFormex<StringProperty | NumberProperty>();\n\n const modePath = \"mode\";\n const modeValue: string | undefined = getIn(values, modePath);\n const modeError: string | undefined = getIn(touched, modePath) && getIn(errors, modePath);\n\n const autoValuePath = \"autoValue\";\n const autoValueValue: string | undefined = getIn(values, autoValuePath);\n const autoValueError: string | undefined = getIn(touched, autoValuePath) && getIn(errors, autoValuePath);\n\n const timezonePath = \"timezone\";\n const timezoneValue: string | undefined = getIn(values, timezonePath);\n const timezoneError: string | undefined = getIn(touched, timezonePath) && getIn(errors, timezonePath);\n\n const columnTypePath = \"columnType\";\n const columnTypeValue: string | undefined = getIn(values, columnTypePath);\n const columnTypeError: string | undefined = getIn(touched, columnTypePath) && getIn(errors, columnTypePath);\n\n return (\n <>\n <div className={\"flex flex-col col-span-12 gap-2\"}>\n <div>\n <Select name={modePath}\n value={modeValue ?? \"date\"}\n error={Boolean(modeError)}\n onValueChange={(v) => setFieldValue(modePath, v)}\n label={\"Mode\"}\n fullWidth={true}\n renderValue={(v) => {\n switch (v) {\n case \"date_time\":\n return \"Date/Time\";\n case \"date\":\n return \"Date\";\n default:\n return \"\";\n }\n }}\n disabled={disabled}>\n <SelectItem value={\"date_time\"}> Date/Time </SelectItem>\n <SelectItem value={\"date\"}> Date </SelectItem>\n </Select>\n <FieldCaption error={Boolean(modeError)}>\n {modeError}\n </FieldCaption>\n </div>\n <div>\n <Select name={autoValuePath}\n disabled={disabled}\n fullWidth={true}\n value={autoValueValue ?? \"\"}\n onValueChange={(v) => setFieldValue(autoValuePath, v === \"none\" ? null : v)}\n renderValue={(v) => {\n switch (v) {\n case \"on_create\":\n return \"On create\";\n case \"on_update\":\n return \"On any update\";\n default:\n return \"None\";\n }\n }}\n error={Boolean(autoValueError)}\n label={\"Automatic value\"}>\n <SelectItem value={\"none\"}> None </SelectItem>\n <SelectItem value={\"on_create\"}> On create </SelectItem>\n <SelectItem value={\"on_update\"}> On any update </SelectItem>\n </Select>\n <FieldCaption error={Boolean(autoValueError)}>\n {autoValueError ?? \"Update this field automatically when creating or updating the entity\"}\n </FieldCaption>\n </div>\n <div>\n <Select name={timezonePath}\n disabled={disabled}\n fullWidth={true}\n value={timezoneValue ?? \"__local__\"}\n onValueChange={(v) => setFieldValue(timezonePath, v === \"__local__\" ? undefined : v)}\n renderValue={(v) => {\n if (!v || v === \"__local__\") return \"Local timezone\";\n const tz = TIMEZONES.find(t => t.value === v);\n return tz?.label ?? v;\n }}\n error={Boolean(timezoneError)}\n label={\"Timezone\"}>\n <SelectItem value={\"__local__\"}> Local timezone </SelectItem>\n {TIMEZONES.map((tz) => (\n <SelectItem key={tz.value} value={tz.value}>\n {tz.label}\n </SelectItem>\n ))}\n </Select>\n <FieldCaption error={Boolean(timezoneError)}>\n {timezoneError ?? \"Timezone for displaying and inputting dates. Values are always stored in UTC.\"}\n </FieldCaption>\n </div>\n\n </div>\n \n <div className={\"col-span-12\"}>\n <Select name={columnTypePath}\n disabled={disabled}\n fullWidth={true}\n value={columnTypeValue ?? \"_default_\"}\n onValueChange={(v) => setFieldValue(columnTypePath, v === \"_default_\" ? undefined : v)}\n renderValue={(v) => {\n switch (v) {\n case \"timestamp\": return \"timestamp (with timezone)\";\n case \"date\": return \"date\";\n case \"time\": return \"time\";\n case \"_default_\": return \"Default (timestamp)\";\n default: return \"Default (timestamp)\";\n }\n }}\n error={Boolean(columnTypeError)}\n label={\"Database Column Type\"}>\n <SelectItem value={\"_default_\"}> Default (timestamp) </SelectItem>\n <SelectItem value={\"timestamp\"}> timestamp (with timezone) </SelectItem>\n <SelectItem value={\"date\"}> date </SelectItem>\n <SelectItem value={\"time\"}> time </SelectItem>\n </Select>\n <FieldCaption error={Boolean(columnTypeError)}>\n {columnTypeError ?? \"Optional database override for this date field.\"}\n </FieldCaption>\n </div>\n\n <div className={\"col-span-12\"}>\n <ValidationPanel>\n <GeneralPropertyValidation disabled={disabled} />\n </ValidationPanel>\n </div>\n </>\n );\n}\n","import React from \"react\";\n\nimport { Field, FormexFieldProps } from \"@rebasepro/formex\";\nimport { SwitchControl } from \"../../SwitchControl\";\n\nexport function AdvancedPropertyValidation({ disabled }: {\n disabled: boolean\n}) {\n\n const columnWidth = \"columnWidth\";\n const hideFromCollection = \"hideFromCollection\";\n const readOnly = \"readOnly\";\n\n return (\n\n <div className={\"grid grid-cols-12 gap-2\"}>\n <div className={\"col-span-12\"}>\n <Field type=\"checkbox\" name={hideFromCollection}>\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Hide from collection\"}\n size={\"medium\"}\n disabled={disabled}\n form={form}\n tooltip={\"Hide this field from the collection view. It will still be visible in the form view\"}\n field={field} />\n }}\n </Field>\n </div>\n\n <div className={\"col-span-12\"}>\n <Field name={readOnly}\n type=\"checkbox\">\n {({ field, form }: FormexFieldProps) => {\n return <SwitchControl\n label={\"Read only\"}\n size={\"medium\"}\n disabled={disabled}\n tooltip={\"Is this a read only field. Display only as a preview\"}\n form={form}\n field={field} />\n }}\n </Field>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\nimport { GeneralPropertyValidation } from \"./validation/GeneralPropertyValidation\";\n\nexport function KeyValuePropertyField({ disabled }: {\n disabled: boolean;\n}) {\n\n return (\n <>\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n <GeneralPropertyValidation disabled={disabled}/>\n </ValidationPanel>\n\n </div>\n </>\n );\n}\n","import { FieldCaption, useCollectionRegistryController } from \"../../../_cms_internals\";\nimport React, { useCallback, useEffect } from \"react\";\nimport { useFormex } from \"@rebasepro/formex\";\n;\nimport {\n Select,\n SelectItem,\n TextField,\n Typography\n} from \"@rebasepro/ui\";\nimport { EntityCollection, OnAction, RelationProperty } from \"@rebasepro/types\";\n\nimport { CollectionsSelect } from \"./ReferencePropertyField\";\n\nconst ON_ACTION_OPTIONS: OnAction[] = [\"cascade\", \"restrict\", \"no action\", \"set null\", \"set default\"];\n\n/**\n * Property editor form for `type: \"relation\"` properties.\n *\n * This component edits both:\n * 1. The `RelationProperty` fields on the property itself (relationName, etc.)\n * 2. The matching `Relation` entry in `collection.relations[]`\n *\n * When a user configures a relation property, we sync the relation config\n * back to the parent collection's `relations` array so saving the collection\n * persists everything in one go.\n */\nexport function RelationPropertyField({\n disabled,\n showErrors\n}: {\n disabled: boolean;\n showErrors: boolean;\n}) {\n const {\n values,\n errors,\n setFieldValue\n } = useFormex<RelationProperty & { id?: string; _relationConfig?: Record<string, unknown> }>();\n\n const collectionRegistry = useCollectionRegistryController();\n\n // ─── Read the parent collection form to sync `relations[]` ───\n // The PropertyForm is nested inside a parent Formex for the whole collection.\n // We reach it via a second useFormex keyed to the parent context.\n // However, the PropertyForm uses its own isolated Formex, so we can't\n // directly access the parent. Instead, we store the relation config\n // on the property itself and let the save logic merge it.\n //\n // We store the full relation config on a transient `_relationConfig` key\n // so the consumer (CollectionPropertiesEditorForm / save logic) can\n // extract it and place it in `collection.relations[]`.\n\n const relationName = values.relationName ?? \"\";\n // Transient config object stored on the property for editor use.\n // Contains standard Relation fields plus `_targetSlug` for the UI dropdown.\n const relationConfig: Record<string, unknown> = ((values as unknown as Record<string, unknown>)._relationConfig as Record<string, unknown>) ?? {};\n\n const targetSlug = (relationConfig._targetSlug as string) ?? \"\";\n const cardinality = (relationConfig.cardinality as string) ?? \"one\";\n const direction = (relationConfig.direction as string) ?? \"owning\";\n const localKey = (relationConfig.localKey as string) ?? \"\";\n const foreignKeyOnTarget = (relationConfig.foreignKeyOnTarget as string) ?? \"\";\n const through = relationConfig.through as Record<string, string> | undefined;\n const throughTable = through?.table ?? \"\";\n const throughSourceColumn = through?.sourceColumn ?? \"\";\n const throughTargetColumn = through?.targetColumn ?? \"\";\n const onUpdate = (relationConfig.onUpdate as string) ?? \"no action\";\n const onDelete = (relationConfig.onDelete as string) ?? \"no action\";\n\n // Whether to show the junction table section\n const showThrough = cardinality === \"many\" && direction === \"owning\";\n // Whether to show the local key field\n const showLocalKey = direction === \"owning\" && cardinality === \"one\";\n // Whether to show the foreign key on target field\n const showForeignKey = direction === \"inverse\";\n\n const updateRelationConfig = useCallback(\n (patch: Record<string, unknown>) => {\n const current = ((values as unknown as Record<string, unknown>)._relationConfig as Record<string, unknown>) ?? {};\n setFieldValue(\"_relationConfig\" as keyof (RelationProperty & { _relationConfig?: unknown }), { ...current, ...patch });\n },\n [values, setFieldValue]\n );\n\n const updateThrough = useCallback(\n (patch: Record<string, unknown>) => {\n const current = ((values as unknown as Record<string, unknown>)._relationConfig as Record<string, unknown>) ?? {};\n const currentThrough = (current.through as Record<string, unknown>) ?? {};\n setFieldValue(\"_relationConfig\" as keyof (RelationProperty & { _relationConfig?: unknown }), {\n ...current,\n through: { ...currentThrough, ...patch }\n });\n },\n [values, setFieldValue]\n );\n\n // Auto-generate relationName from target collection slug\n useEffect(() => {\n if (targetSlug && !relationName) {\n setFieldValue(\"relationName\", targetSlug);\n }\n }, [targetSlug]);\n\n const collections: EntityCollection[] = collectionRegistry?.collections ?? [];\n\n return (\n <>\n {/* ─── Target Collection ─── */}\n <div className={\"col-span-12\"}>\n <CollectionsSelect\n disabled={disabled}\n pathPath={\"_relationConfig._targetSlug\"}\n value={targetSlug}\n setFieldValue={(_, value) => {\n updateRelationConfig({ _targetSlug: value });\n // Auto-generate relation name from target\n if (!relationName || relationName === targetSlug) {\n setFieldValue(\"relationName\", value);\n }\n }}\n error={showErrors && !targetSlug ? \"You must select a target collection\" : undefined}\n />\n <FieldCaption error={showErrors && !targetSlug}>\n {showErrors && !targetSlug\n ? \"You must select a target collection\"\n : \"The collection this relation points to\"}\n </FieldCaption>\n </div>\n\n {/* ─── Relation Name ─── */}\n <div className={\"col-span-12\"}>\n <TextField\n value={relationName}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>\n setFieldValue(\"relationName\", e.target.value)\n }\n label={\"Relation name\"}\n disabled={disabled}\n error={showErrors && !relationName}\n />\n <FieldCaption error={showErrors && !relationName}>\n {showErrors && !relationName\n ? \"Required\"\n : \"Identifier for this relation (used to link the property to the relation config)\"}\n </FieldCaption>\n </div>\n\n {/* ─── Cardinality ─── */}\n <div className={\"col-span-12 sm:col-span-6\"}>\n <Select\n value={cardinality}\n onValueChange={(v) => updateRelationConfig({ cardinality: v })}\n label={\"Cardinality\"}\n disabled={disabled}\n fullWidth\n renderValue={(v) => v === \"one\" ? \"One (has-one)\" : \"Many (has-many)\"}\n >\n <SelectItem value={\"one\"}>\n <div>\n <Typography variant={\"body2\"}>One (has-one)</Typography>\n <Typography variant={\"caption\"} color={\"secondary\"}>\n This property references a single record\n </Typography>\n </div>\n </SelectItem>\n <SelectItem value={\"many\"}>\n <div>\n <Typography variant={\"body2\"}>Many (has-many)</Typography>\n <Typography variant={\"caption\"} color={\"secondary\"}>\n This property references multiple records\n </Typography>\n </div>\n </SelectItem>\n </Select>\n <FieldCaption>\n Whether the relation returns one or multiple records\n </FieldCaption>\n </div>\n\n {/* ─── Direction ─── */}\n <div className={\"col-span-12 sm:col-span-6\"}>\n <Select\n value={direction}\n onValueChange={(v) => updateRelationConfig({ direction: v })}\n label={\"Direction\"}\n disabled={disabled}\n fullWidth\n renderValue={(v) => v === \"owning\" ? \"Owning\" : \"Inverse\"}\n >\n <SelectItem value={\"owning\"}>\n <div>\n <Typography variant={\"body2\"}>Owning</Typography>\n <Typography variant={\"caption\"} color={\"secondary\"}>\n This table stores the foreign key (or owns the junction table)\n </Typography>\n </div>\n </SelectItem>\n <SelectItem value={\"inverse\"}>\n <div>\n <Typography variant={\"body2\"}>Inverse</Typography>\n <Typography variant={\"caption\"} color={\"secondary\"}>\n The target table stores the foreign key pointing back here\n </Typography>\n </div>\n </SelectItem>\n </Select>\n <FieldCaption>\n Which side of the relation owns the persistence\n </FieldCaption>\n </div>\n\n {/* ─── Local Key (owning + one) ─── */}\n {showLocalKey && (\n <div className={\"col-span-12\"}>\n <TextField\n value={localKey}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>\n updateRelationConfig({ localKey: e.target.value })\n }\n label={\"Local key (foreign key column on this table)\"}\n disabled={disabled}\n placeholder={\"e.g. author_id\"}\n />\n <FieldCaption>\n Column on this table that references the target's primary key\n </FieldCaption>\n </div>\n )}\n\n {/* ─── Foreign Key on Target (inverse) ─── */}\n {showForeignKey && (\n <div className={\"col-span-12\"}>\n <TextField\n value={foreignKeyOnTarget}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>\n updateRelationConfig({ foreignKeyOnTarget: e.target.value })\n }\n label={\"Foreign key on target table\"}\n disabled={disabled}\n placeholder={\"e.g. post_id\"}\n />\n <FieldCaption>\n Column on the target table that references this table's primary key\n </FieldCaption>\n </div>\n )}\n\n {/* ─── Junction Table (many + owning) ─── */}\n {showThrough && (\n <div className={\"col-span-12\"}>\n <Typography variant={\"label\"} className={\"mb-2\"}>\n Junction table (many-to-many)\n </Typography>\n <div className={\"grid grid-cols-12 gap-4\"}>\n <div className={\"col-span-12\"}>\n <TextField\n value={throughTable}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>\n updateThrough({ table: e.target.value })\n }\n label={\"Junction table name\"}\n disabled={disabled}\n placeholder={\"e.g. user_roles\"}\n />\n <FieldCaption>\n Name of the intermediate table that connects both collections\n </FieldCaption>\n </div>\n <div className={\"col-span-12 sm:col-span-6\"}>\n <TextField\n value={throughSourceColumn}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>\n updateThrough({ sourceColumn: e.target.value })\n }\n label={\"Source column\"}\n disabled={disabled}\n placeholder={\"e.g. user_id\"}\n />\n <FieldCaption>\n Column in the junction table referencing this table\n </FieldCaption>\n </div>\n <div className={\"col-span-12 sm:col-span-6\"}>\n <TextField\n value={throughTargetColumn}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>\n updateThrough({ targetColumn: e.target.value })\n }\n label={\"Target column\"}\n disabled={disabled}\n placeholder={\"e.g. role_id\"}\n />\n <FieldCaption>\n Column in the junction table referencing the target table\n </FieldCaption>\n </div>\n </div>\n </div>\n )}\n\n {/* ─── Cascade Actions ─── */}\n <div className={\"col-span-12 sm:col-span-6\"}>\n <Select\n value={onUpdate}\n onValueChange={(v) => updateRelationConfig({ onUpdate: v })}\n label={\"On update\"}\n disabled={disabled}\n fullWidth\n renderValue={(v) => String(v)}\n >\n {ON_ACTION_OPTIONS.map((action) => (\n <SelectItem key={action} value={action}>\n {action}\n </SelectItem>\n ))}\n </Select>\n <FieldCaption>\n Action when the referenced record is updated\n </FieldCaption>\n </div>\n\n <div className={\"col-span-12 sm:col-span-6\"}>\n <Select\n value={onDelete}\n onValueChange={(v) => updateRelationConfig({ onDelete: v })}\n label={\"On delete\"}\n disabled={disabled}\n fullWidth\n renderValue={(v) => String(v)}\n >\n {ON_ACTION_OPTIONS.map((action) => (\n <SelectItem key={action} value={action}>\n {action}\n </SelectItem>\n ))}\n </Select>\n <FieldCaption>\n Action when the referenced record is deleted\n </FieldCaption>\n </div>\n </>\n );\n}\n","import { ArrayProperty, BooleanProperty, DateProperty, MapProperty, NumberProperty, Property, PropertyConfig, StringProperty } from \"@rebasepro/types\";\nimport { mergeDeep } from \"@rebasepro/utils\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- propertyData is a partial property shape built incrementally via mergeDeep\nexport function updatePropertyFromWidget(propertyData: any,\n selectedWidgetId: string | undefined,\n propertyConfigs: Record<string, PropertyConfig>): Property {\n\n let updatedProperty;\n if (selectedWidgetId === \"text_field\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"text_field\",\n storage: undefined,\n multiline: undefined,\n markdown: undefined,\n email: undefined,\n url: undefined,\n enum: undefined,\n userSelect: undefined\n } as StringProperty\n );\n } else if (selectedWidgetId === \"user_select\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"user_select\",\n storage: undefined,\n multiline: undefined,\n markdown: undefined,\n email: undefined,\n url: undefined,\n enum: undefined,\n userSelect: true\n } as StringProperty\n );\n } else if (selectedWidgetId === \"multiline\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"multiline\",\n multiline: true,\n storage: undefined,\n markdown: undefined,\n email: undefined,\n url: undefined,\n enum: undefined,\n userSelect: undefined\n } as StringProperty\n );\n } else if (selectedWidgetId === \"markdown\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"markdown\",\n storage: undefined,\n multiline: undefined,\n markdown: true,\n email: undefined,\n url: undefined,\n userSelect: undefined\n } as StringProperty\n );\n } else if (selectedWidgetId === \"url\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"url\",\n storage: undefined,\n multiline: undefined,\n markdown: undefined,\n email: undefined,\n url: true,\n enum: undefined,\n userSelect: undefined\n } as StringProperty\n );\n } else if (selectedWidgetId === \"email\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"email\",\n storage: undefined,\n multiline: undefined,\n markdown: undefined,\n email: true,\n url: undefined,\n enum: undefined,\n userSelect: undefined\n } as StringProperty\n );\n } else if (selectedWidgetId === \"select\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"select\",\n storage: undefined,\n multiline: undefined,\n markdown: undefined,\n email: undefined,\n url: undefined,\n enum: propertyData.enum ?? [],\n userSelect: undefined\n } as StringProperty\n );\n } else if (selectedWidgetId === \"multi_select\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"array\",\n propertyConfig: \"multi_select\",\n of: {\n type: \"string\",\n enum: propertyData.of?.enum ?? []\n }\n } as ArrayProperty\n );\n } else if (selectedWidgetId === \"number_input\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"number\",\n propertyConfig: \"number_input\",\n enum: undefined\n } as NumberProperty\n );\n } else if (selectedWidgetId === \"number_select\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"number\",\n propertyConfig: \"number_select\",\n enum: propertyData.enum ?? []\n } as NumberProperty\n );\n } else if (selectedWidgetId === \"multi_number_select\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"array\",\n propertyConfig: \"multi_number_select\",\n of: {\n type: \"number\",\n enum: propertyData.of?.enum ?? []\n }\n } as ArrayProperty\n );\n } else if (selectedWidgetId === \"file_upload\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"file_upload\",\n storage: {\n storagePath: \"/\"\n }\n } as StringProperty\n );\n } else if (selectedWidgetId === \"multi_file_upload\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"array\",\n propertyConfig: \"multi_file_upload\",\n of: {\n type: \"string\",\n storage: propertyData.of?.storage ?? {\n storagePath: \"/\"\n }\n }\n } as ArrayProperty\n );\n } else if (selectedWidgetId === \"group\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"map\",\n propertyConfig: \"group\",\n keyValue: false,\n properties: propertyData.properties ?? {}\n } as MapProperty\n );\n } else if (selectedWidgetId === \"key_value\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"map\",\n propertyConfig: \"key_value\",\n keyValue: true,\n properties: undefined\n } as MapProperty\n );\n } else if (selectedWidgetId === \"reference\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"reference\",\n propertyConfig: \"reference\",\n } as Property\n );\n } else if (selectedWidgetId === \"reference_as_string\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"string\",\n propertyConfig: \"reference_as_string\",\n } as Property\n );\n } else if (selectedWidgetId === \"multi_references\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"array\",\n propertyConfig: \"multi_references\",\n of: {\n type: \"reference\"\n }\n } as ArrayProperty\n );\n } else if (selectedWidgetId === \"switch\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"boolean\",\n propertyConfig: \"switch\",\n } as BooleanProperty\n );\n } else if (selectedWidgetId === \"date_time\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"date\",\n propertyConfig: \"date_time\",\n mode: \"date_time\"\n } as DateProperty\n );\n } else if (selectedWidgetId === \"relation\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"relation\",\n propertyConfig: \"relation\",\n relationName: propertyData.relationName ?? \"\"\n } as Property\n );\n } else if (selectedWidgetId === \"repeat\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"array\",\n propertyConfig: \"repeat\",\n } as ArrayProperty\n );\n } else if (selectedWidgetId === \"block\") {\n updatedProperty = mergeDeep(\n propertyData,\n {\n type: \"array\",\n propertyConfig: \"block\",\n oneOf: {\n properties: {}\n }\n } as ArrayProperty\n );\n } else if (selectedWidgetId && propertyConfigs[selectedWidgetId]) {\n updatedProperty = {\n ...propertyConfigs[selectedWidgetId].property,\n propertyConfig: selectedWidgetId\n };\n }\n\n return updatedProperty;\n}\n","import React from \"react\";\nimport { StringPropertyValidation } from \"./validation/StringPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\nimport { getIn, useFormex } from \"@rebasepro/formex\";\n\nimport { Select, SelectItem, TextField } from \"@rebasepro/ui\";\n\nexport function UrlPropertyField({\n disabled,\n showErrors\n}: {\n disabled: boolean;\n showErrors: boolean;\n}) {\n\n const { values, setFieldValue } = useFormex();\n\n const urlValue = getIn(values, \"url\");\n\n return (\n <>\n <div className={\"col-span-12\"}>\n\n <Select\n disabled={disabled}\n position={\"item-aligned\"}\n fullWidth={true}\n onValueChange={(value: string) => {\n if (value === \"[NONE]\")\n setFieldValue(\"url\", true);\n else\n setFieldValue(\"url\", value);\n }}\n label={\"Preview type\"}\n renderValue={(value: string) => {\n switch (value) {\n case \"image\":\n return \"Image\";\n case \"video\":\n return \"Video\";\n case \"audio\":\n return \"Audio\";\n default:\n return \"Display URL\";\n }\n }}\n value={urlValue ?? \"[NONE]\"}>\n <SelectItem value={\"[NONE]\"}>\n Display URL\n </SelectItem>\n <SelectItem value={\"image\"}>\n Image\n </SelectItem>\n <SelectItem value={\"video\"}>\n Video\n </SelectItem>\n <SelectItem value={\"audio\"}>\n Audio\n </SelectItem>\n </Select>\n </div>\n\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n\n <StringPropertyValidation disabled={disabled}\n max={true}\n min={true}\n trim={true}\n showErrors={showErrors} />\n\n </ValidationPanel>\n\n </div>\n\n <div className={\"col-span-12\"}>\n\n <TextField name={\"defaultValue\"}\n disabled={disabled}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setFieldValue(\"defaultValue\", e.target.value === \"\" ? undefined : e.target.value);\n }}\n label={\"Default value\"}\n value={getIn(values, \"defaultValue\") ?? \"\"} />\n\n </div>\n </>\n );\n}\n","import { DEFAULT_FIELD_CONFIGS } from \"../../../_cms_internals\";\nimport { PropertyConfigId, PropertyConfig } from \"@rebasepro/types\";\n\nexport const supportedFieldsIds: PropertyConfigId[] = [\n \"text_field\",\n \"multiline\",\n \"markdown\",\n \"url\",\n \"email\",\n \"user_select\",\n \"select\",\n \"multi_select\",\n \"number_input\",\n \"number_select\",\n \"multi_number_select\",\n \"file_upload\",\n \"multi_file_upload\",\n \"reference\",\n \"reference_as_string\",\n \"multi_references\",\n \"relation\",\n \"switch\",\n \"date_time\",\n \"group\",\n \"key_value\",\n \"repeat\",\n \"block\"\n];\n\nexport const supportedFields: Record<string, PropertyConfig> = Object.entries(DEFAULT_FIELD_CONFIGS)\n .filter(([id]) => supportedFieldsIds.includes(id as PropertyConfigId))\n .map(([id, config]) => ({ [id]: config }))\n .reduce((a, b) => ({ ...a, ...b }), {});\n","import React, { useCallback } from \"react\";\nimport { StringPropertyValidation } from \"./validation/StringPropertyValidation\";\nimport { ValidationPanel } from \"./validation/ValidationPanel\";\nimport { Field, getIn, useFormex } from \"@rebasepro/formex\";\n\nimport {\n BooleanSwitchWithLabel,\n CloudUploadIcon,\n DebouncedTextField,\n ExpandablePanel,\n SettingsIcon,\n TextField,\n Typography\n} from \"@rebasepro/ui\";\n\nexport function MarkdownPropertyField({\n disabled,\n showErrors\n}: {\n disabled: boolean;\n showErrors: boolean;\n}) {\n\n const {\n values,\n setFieldValue\n } = useFormex();\n\n const baseStoragePath = \"storage\";\n const baseMarkdownPath = \"markdown\";\n\n const metadata = `${baseStoragePath}.metadata`;\n const fileName = `${baseStoragePath}.fileName`;\n const maxSize = `${baseStoragePath}.maxSize`;\n const storagePath = `${baseStoragePath}.storagePath`;\n\n // Markdown config paths\n const htmlPath = `${baseMarkdownPath}.html`;\n const transformPastedTextPath = `${baseMarkdownPath}.transformPastedText`;\n\n const fileNameValue = getIn(values, fileName) ?? \"{rand}_{file}\";\n const storagePathValue = getIn(values, storagePath) ?? \"/\";\n const maxSizeValue = getIn(values, maxSize);\n\n // Markdown config values - check if markdown is an object or boolean\n const markdownValue = getIn(values, \"markdown\");\n const isMarkdownObject = typeof markdownValue === \"object\" && markdownValue !== null;\n const htmlValue = isMarkdownObject ? (markdownValue.html ?? true) : true;\n const transformPastedTextValue = isMarkdownObject ? (markdownValue.transformPastedText ?? false) : false;\n\n const hasFilenameCallback = typeof fileNameValue === \"function\";\n const hasStoragePathCallback = typeof storagePathValue === \"function\";\n\n // Handler to update markdown config - converts from boolean to object if needed\n const updateMarkdownConfig = useCallback((key: \"html\" | \"transformPastedText\", value: boolean) => {\n const currentMarkdown = getIn(values, \"markdown\");\n if (typeof currentMarkdown === \"object\" && currentMarkdown !== null) {\n // Already an object, update the key\n setFieldValue(`markdown.${key}`, value);\n } else {\n // Convert from boolean to object\n const defaultConfig = {\n html: true,\n transformPastedText: false\n };\n setFieldValue(\"markdown\", {\n ...defaultConfig,\n [key]: value\n });\n }\n }, [values, setFieldValue]);\n\n return (\n <>\n <div className={\"col-span-12\"}>\n\n <ValidationPanel>\n\n <StringPropertyValidation disabled={disabled}\n length={true}\n lowercase={true}\n max={true}\n min={true}\n trim={true}\n uppercase={true}\n showErrors={showErrors} />\n\n </ValidationPanel>\n\n </div>\n\n <div className={\"col-span-12\"}>\n <ExpandablePanel\n title={\n <div className=\"flex flex-row text-surface-500\">\n <SettingsIcon />\n <Typography variant={\"subtitle2\"}\n className=\"ml-4\">\n Paste behavior\n </Typography>\n </div>\n }>\n\n <div className={\"flex flex-col gap-2 p-4\"}>\n <BooleanSwitchWithLabel\n size={\"small\"}\n disabled={disabled}\n value={!htmlValue}\n onValueChange={(value) => updateMarkdownConfig(\"html\", !value)}\n label={\"Strip HTML on paste\"}\n />\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n Remove HTML tags and inline styles when pasting content from external sources\n </Typography>\n\n <BooleanSwitchWithLabel\n size={\"small\"}\n disabled={disabled}\n value={transformPastedTextValue}\n onValueChange={(value) => updateMarkdownConfig(\"transformPastedText\", value)}\n label={\"Convert pasted text to markdown\"}\n />\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n Convert rich text (from Google Docs, Word, etc.) to clean markdown format\n </Typography>\n </div>\n </ExpandablePanel>\n </div>\n\n <div className={\"col-span-12\"}>\n <ExpandablePanel\n title={\n <div className=\"flex flex-row text-surface-500\">\n <CloudUploadIcon />\n <Typography variant={\"subtitle2\"}\n className=\"ml-4\">\n File upload config\n </Typography>\n </div>\n }>\n\n <div className={\"grid grid-cols-12 gap-2 p-4\"}>\n\n\n <div className={\"col-span-12\"}>\n <Field name={fileName}\n as={DebouncedTextField}\n label={\"File name\"}\n size={\"small\"}\n disabled={hasFilenameCallback || disabled}\n value={hasFilenameCallback ? \"-\" : fileNameValue}\n />\n </div>\n <div className={\"col-span-12\"}>\n <Field name={storagePath}\n as={DebouncedTextField}\n label={\"Storage path\"}\n disabled={hasStoragePathCallback || disabled}\n size={\"small\"}\n value={hasStoragePathCallback ? \"-\" : storagePathValue}\n />\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n <p>You can use the following placeholders in\n the file name\n and storage path values:</p>\n <ul>\n <li>{\"{file} - Full name of the uploaded file\"}</li>\n <li>{\"{file.name} - Name of the uploaded file without extension\"}</li>\n <li>{\"{file.ext} - Extension of the uploaded file\"}</li>\n <li>{\"{entityId} - ID of the entity\"}</li>\n <li>{\"{propertyKey} - ID of this field\"}</li>\n <li>{\"{path} - Path of this entity\"}</li>\n <li>{\"{rand} - Random value used to avoid name collisions\"}</li>\n </ul>\n </Typography>\n\n <Typography variant={\"caption\"} className={\"ml-3.5 mt-1 mb-2\"}>\n When using Markdown, the URL of the uploaded files are always saved in the text value\n (not\n the path).\n </Typography>\n </div>\n\n <div className={\"col-span-12\"}>\n <DebouncedTextField name={maxSize}\n type={\"number\"}\n label={\"Max size (in bytes)\"}\n size={\"small\"}\n value={maxSizeValue !== undefined && maxSizeValue !== null ? maxSizeValue.toString() : \"\"}\n onChange={(e) => {\n const value = e.target.value;\n if (value === \"\") setFieldValue(maxSize, undefined);\n else setFieldValue(maxSize, parseInt(value));\n }}\n />\n </div>\n\n </div>\n </ExpandablePanel>\n </div>\n\n <div className={\"col-span-12\"}>\n\n <TextField name={\"defaultValue\"}\n disabled={disabled}\n onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n setFieldValue(\"defaultValue\", e.target.value === \"\" ? undefined : e.target.value);\n }}\n label={\"Default value\"}\n value={getIn(values, \"defaultValue\") ?? \"\"} />\n\n </div>\n </>\n );\n}\n","import React, { useDeferredValue, useEffect, useRef, useState } from \"react\";\nimport { deepEqual as equal } from \"fast-equals\"\n\nimport { Formex, FormexController, getIn, useCreateFormex } from \"@rebasepro/formex\";\nimport { ConfirmationDialog } from \"@rebasepro/core\";\nimport { DEFAULT_FIELD_CONFIGS, getFieldConfig, getFieldId, PropertyConfigBadge } from \"../../_cms_internals\";\nimport { Property, PropertyConfig, PropertyConfigId } from \"@rebasepro/types\";\nimport { isPropertyBuilder } from \"@rebasepro/common\";\nimport {\n Button,\n Card,\n cls,\n DeleteIcon,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n fieldBackgroundDisabledMixin,\n fieldBackgroundHoverMixin,\n fieldBackgroundMixin,\n IconButton,\n InfoLabel,\n Tooltip,\n Typography,\n WarningIcon\n} from \"@rebasepro/ui\";\nimport { EnumPropertyField } from \"./properties/EnumPropertyField\";\nimport { StoragePropertyField } from \"./properties/StoragePropertyField\";\nimport { MapPropertyField } from \"./properties/MapPropertyField\";\nimport { RepeatPropertyField } from \"./properties/RepeatPropertyField\";\nimport { CommonPropertyFields } from \"./properties/CommonPropertyFields\";\nimport { StringPropertyField } from \"./properties/StringPropertyField\";\nimport { BooleanPropertyField } from \"./properties/BooleanPropertyField\";\nimport { BlockPropertyField } from \"./properties/BlockPropertyField\";\nimport { NumberPropertyField } from \"./properties/NumberPropertyField\";\nimport { ReferencePropertyField } from \"./properties/ReferencePropertyField\";\nimport { DateTimePropertyField } from \"./properties/DateTimePropertyField\";\nimport { AdvancedPropertyValidation } from \"./properties/advanced/AdvancedPropertyValidation\";\n\nimport { KeyValuePropertyField } from \"./properties/KeyValuePropertyField\";\nimport { RelationPropertyField } from \"./properties/RelationPropertyField\";\nimport { updatePropertyFromWidget } from \"./utils/update_property_for_widget\";\nimport { UrlPropertyField } from \"./properties/UrlPropertyField\";\nimport { supportedFields } from \"./utils/supported_fields\";\nimport { MarkdownPropertyField } from \"./properties/MarkdownPropertyField\";\nimport { isValidRegExp, mergeDeep } from \"@rebasepro/utils\";\n\nexport type PropertyWithId = Property & {\n id?: string\n};\n\nexport type OnPropertyChangedParams = {\n id?: string,\n property: Property,\n namespace?: string,\n previousId?: string\n};\n\nexport type PropertyFormProps = {\n includeIdAndName?: boolean;\n existingProperty: boolean;\n autoUpdateId?: boolean;\n autoOpenTypeSelect: boolean;\n inArray: boolean;\n propertyKey?: string;\n propertyNamespace?: string;\n property?: Property;\n onPropertyChanged?: (params: OnPropertyChangedParams) => void;\n onPropertyChangedImmediate?: boolean;\n onDismiss?: () => void;\n onDelete?: (id?: string, namespace?: string) => void;\n onError?: (id: string, namespace?: string, error?: Record<string, any>) => void;\n initialErrors?: Record<string, any>;\n existingPropertyKeys?: string[];\n forceShowErrors?: boolean;\n allowDataInference: boolean;\n getData?: () => Promise<object[]>;\n getController?: (formex: FormexController<PropertyWithId>) => void;\n propertyConfigs: Record<string, PropertyConfig>;\n\n};\n\nexport const PropertyForm = React.memo(\n function PropertyForm(props: PropertyFormProps) {\n\n const {\n includeIdAndName = true,\n autoOpenTypeSelect,\n existingProperty,\n autoUpdateId,\n inArray,\n propertyKey,\n existingPropertyKeys,\n propertyNamespace,\n property,\n onPropertyChanged,\n onPropertyChangedImmediate = true,\n onDismiss,\n onDelete,\n onError,\n initialErrors,\n forceShowErrors,\n allowDataInference,\n getController,\n getData,\n propertyConfigs,\n } = props;\n\n const initialValue: PropertyWithId = {\n id: \"\",\n name: \"\"\n } as PropertyWithId;\n\n const disabled = Boolean(property && isPropertyBuilder(property));\n\n const lastSubmittedProperty = useRef<OnPropertyChangedParams | undefined>(property ? {\n id: propertyKey,\n previousId: propertyKey,\n property\n } : undefined);\n\n const doOnPropertyChanged = ({\n id,\n property\n }: OnPropertyChangedParams) => {\n const params = {\n id,\n previousId: lastSubmittedProperty.current?.id,\n property,\n namespace: propertyNamespace\n };\n lastSubmittedProperty.current = params;\n onPropertyChanged?.(params);\n };\n\n const formexController = useCreateFormex<PropertyWithId>({\n debugId: \"PROPERTY_FORM\",\n initialValues: property\n ? { id: propertyKey, ...property } as PropertyWithId\n : initialValue,\n initialErrors,\n validateOnChange: true,\n validateOnInitialRender: true,\n onSubmit: (newPropertyWithId, controller) => {\n const {\n id,\n ...property\n } = newPropertyWithId;\n doOnPropertyChanged({\n id,\n property: property as Property\n });\n if (!existingProperty)\n controller.resetForm({ values: initialValue });\n },\n validation: (values) => {\n const errors: Record<string, any> = {};\n if (includeIdAndName) {\n if (!values.name) {\n errors.name = \"Required\";\n } else {\n const nameError = validateName(values.name);\n if (nameError)\n errors.name = nameError;\n }\n if (!values.id) {\n errors.id = \"Required\";\n } else {\n const idError = validateId(values.id, existingPropertyKeys);\n if (idError)\n errors.id = idError;\n }\n }\n\n if (values.type === \"string\") {\n if (values.validation?.matches && !isValidRegExp(values.validation?.matches.toString())) {\n errors.validation = {\n matches: \"Invalid regular expression\"\n }\n }\n }\n if (values.type === \"reference\" && !values.path) {\n errors.slug = \"You must specify a target collection for the field\";\n }\n if (values.propertyConfig === \"repeat\") {\n if (!(\"of\" in values) || !values.of) {\n errors.of = \"You need to specify a repeat field\";\n }\n }\n if (values.propertyConfig === \"block\") {\n if (!(\"oneOf\" in values) || !values.oneOf) {\n errors.oneOf = \"You need to specify the properties of this block\";\n }\n }\n return errors;\n }\n });\n\n useEffect(() => {\n getController?.(formexController);\n }, [formexController, getController]);\n\n return <Formex value={formexController}>\n <PropertyEditFormFields\n onPropertyChanged={onPropertyChangedImmediate\n ? doOnPropertyChanged\n : undefined}\n onDelete={onDelete}\n includeIdAndTitle={includeIdAndName}\n propertyNamespace={propertyNamespace}\n onError={onError}\n onDismiss={onDismiss}\n showErrors={forceShowErrors || formexController.submitCount > 0}\n existing={existingProperty}\n autoUpdateId={autoUpdateId}\n inArray={inArray}\n autoOpenTypeSelect={autoOpenTypeSelect}\n disabled={disabled}\n getData={getData}\n allowDataInference={allowDataInference}\n propertyConfigs={propertyConfigs}\n {...formexController} />\n </Formex>;\n }, (a, b) =>\n a.getData === b.getData &&\n a.propertyKey === b.propertyKey &&\n a.propertyNamespace === b.propertyNamespace &&\n a.includeIdAndName === b.includeIdAndName &&\n a.autoOpenTypeSelect === b.autoOpenTypeSelect &&\n a.autoUpdateId === b.autoUpdateId &&\n a.existingPropertyKeys === b.existingPropertyKeys &&\n a.existingProperty === b.existingProperty\n);\n\nexport function PropertyFormDialog({\n open,\n onCancel,\n onOkClicked,\n onPropertyChanged,\n getData,\n ...formProps\n}: PropertyFormProps & {\n open?: boolean;\n onOkClicked?: () => void;\n onCancel?: () => void;\n}) {\n const formexRef = useRef<FormexController<PropertyWithId>>(undefined);\n const getController = (helpers: FormexController<PropertyWithId>) => {\n formexRef.current = helpers;\n };\n\n return <Dialog\n open={open ?? false}\n maxWidth={\"xl\"}\n fullWidth={true}\n >\n <form noValidate={true}\n autoComplete={\"off\"}\n onSubmit={(e) => {\n e.preventDefault();\n e.stopPropagation();\n formexRef.current?.handleSubmit(e)\n }}>\n <DialogTitle hidden>Property edit view</DialogTitle>\n <DialogContent>\n\n <PropertyForm {...formProps}\n onDismiss={onCancel}\n onPropertyChanged={(params) => {\n onPropertyChanged?.(params);\n onOkClicked?.();\n }}\n\n onPropertyChangedImmediate={false}\n getController={getController}\n getData={getData}\n />\n </DialogContent>\n\n <DialogActions>\n\n {onCancel && <Button\n variant={\"text\"}\n onClick={() => {\n onCancel();\n formexRef.current?.resetForm();\n }}>\n Cancel\n </Button>}\n\n <Button type={\"submit\"}>\n Ok\n </Button>\n </DialogActions>\n </form>\n </Dialog>;\n\n}\n\nfunction PropertyEditFormFields({\n values,\n errors,\n setValues,\n existing,\n autoUpdateId = false,\n autoOpenTypeSelect,\n includeIdAndTitle,\n onPropertyChanged,\n onDelete,\n propertyNamespace,\n onDismiss,\n onError,\n showErrors,\n disabled,\n inArray,\n getData,\n allowDataInference,\n propertyConfigs\n}: {\n includeIdAndTitle?: boolean;\n existing: boolean;\n autoUpdateId?: boolean;\n autoOpenTypeSelect: boolean;\n propertyNamespace?: string;\n onDismiss?: () => void;\n onPropertyChanged?: (params: OnPropertyChangedParams) => void;\n onDelete?: (id?: string, namespace?: string) => void;\n onError?: (id: string, namespace?: string, error?: Record<string, any>) => void;\n showErrors: boolean;\n inArray: boolean;\n disabled: boolean;\n getData?: () => Promise<object[]>;\n allowDataInference: boolean;\n propertyConfigs: Record<string, PropertyConfig>;\n\n} & FormexController<PropertyWithId>) {\n\n const [selectOpen, setSelectOpen] = useState(autoOpenTypeSelect);\n const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);\n const [selectedFieldConfigId, setSelectedFieldConfigId] = useState<string | undefined>(values?.type ? getFieldId(values) : undefined);\n\n const deferredValues = useDeferredValue(values);\n const nameFieldRef = useRef<HTMLInputElement>(null);\n\n const lastSubmittedProperty = useRef<object>(values);\n\n const selectedWidgetError = showErrors && getIn(errors, \"selectedWidget\");\n\n useEffect(() => {\n if (onPropertyChanged) {\n if ((!includeIdAndTitle || deferredValues.id)) {\n const {\n id,\n ...property\n } = deferredValues;\n if (!equal(deferredValues, lastSubmittedProperty.current)) {\n onPropertyChanged({\n id,\n property,\n namespace: propertyNamespace\n });\n lastSubmittedProperty.current = deferredValues;\n }\n }\n }\n }, [deferredValues, includeIdAndTitle, propertyNamespace]);\n\n useEffect(() => {\n if (values?.id && onError) {\n onError(values?.id, propertyNamespace, errors);\n }\n }, [errors, propertyNamespace, values?.id]);\n\n const onWidgetSelectChanged = (newSelectedWidgetId: PropertyConfigId) => {\n setSelectedFieldConfigId(newSelectedWidgetId);\n setValues(updatePropertyFromWidget(values, newSelectedWidgetId, propertyConfigs));\n // Ugly hack to autofocus the name field\n setTimeout(() => {\n nameFieldRef.current?.focus();\n }, 0);\n };\n\n let childComponent;\n if (selectedFieldConfigId === \"text_field\" ||\n selectedFieldConfigId === \"multiline\" ||\n selectedFieldConfigId === \"user_select\" ||\n selectedFieldConfigId === \"email\") {\n childComponent =\n <StringPropertyField widgetId={selectedFieldConfigId}\n disabled={disabled}\n showErrors={showErrors} />;\n } else if (selectedFieldConfigId === \"url\") {\n childComponent =\n <UrlPropertyField disabled={disabled}\n showErrors={showErrors} />;\n } else if (selectedFieldConfigId === \"markdown\") {\n childComponent =\n <MarkdownPropertyField disabled={disabled}\n showErrors={showErrors} />;\n } else if (selectedFieldConfigId === \"select\" ||\n selectedFieldConfigId === \"number_select\") {\n childComponent = <EnumPropertyField\n multiselect={false}\n allowDataInference={allowDataInference}\n updateIds={!existing}\n disabled={disabled}\n getData={getData}\n propertyNamespace={propertyNamespace}\n showErrors={showErrors} />;\n } else if (selectedFieldConfigId === \"multi_select\" ||\n selectedFieldConfigId === \"multi_number_select\") {\n childComponent = <EnumPropertyField\n multiselect={true}\n updateIds={!existing}\n disabled={disabled}\n allowDataInference={allowDataInference}\n getData={getData}\n propertyNamespace={propertyNamespace}\n showErrors={showErrors} />;\n } else if (selectedFieldConfigId === \"file_upload\") {\n childComponent =\n <StoragePropertyField existing={existing}\n multiple={false}\n disabled={disabled} />;\n } else if (selectedFieldConfigId === \"multi_file_upload\") {\n childComponent =\n <StoragePropertyField existing={existing}\n multiple={true}\n disabled={disabled} />;\n } else if (selectedFieldConfigId === \"switch\") {\n childComponent = <BooleanPropertyField disabled={disabled} />;\n } else if (selectedFieldConfigId === \"number_input\") {\n childComponent = <NumberPropertyField disabled={disabled} />;\n } else if (selectedFieldConfigId === \"group\") {\n childComponent =\n <MapPropertyField disabled={disabled} getData={getData} allowDataInference={allowDataInference}\n propertyConfigs={propertyConfigs} />;\n } else if (selectedFieldConfigId === \"block\") {\n childComponent =\n <BlockPropertyField disabled={disabled} getData={getData} allowDataInference={allowDataInference}\n propertyConfigs={propertyConfigs} />;\n } else if (selectedFieldConfigId === \"reference\") {\n childComponent =\n <ReferencePropertyField showErrors={showErrors}\n existing={existing}\n multiple={false}\n disabled={disabled} />;\n } else if (selectedFieldConfigId === \"reference_as_string\") {\n childComponent =\n <ReferencePropertyField showErrors={showErrors}\n existing={existing}\n asString={true}\n multiple={false}\n disabled={disabled} />;\n } else if (selectedFieldConfigId === \"date_time\") {\n childComponent = <DateTimePropertyField disabled={disabled} />;\n } else if (selectedFieldConfigId === \"multi_references\") {\n childComponent =\n <ReferencePropertyField showErrors={showErrors}\n existing={existing}\n multiple={true}\n disabled={disabled} />;\n } else if (selectedFieldConfigId === \"repeat\") {\n childComponent =\n <RepeatPropertyField showErrors={showErrors}\n existing={existing}\n getData={getData}\n allowDataInference={allowDataInference}\n disabled={disabled}\n propertyConfigs={propertyConfigs} />;\n } else if (selectedFieldConfigId === \"key_value\") {\n childComponent =\n <KeyValuePropertyField disabled={disabled} />;\n } else if (selectedFieldConfigId === \"relation\") {\n childComponent =\n <RelationPropertyField\n showErrors={showErrors}\n disabled={disabled} />;\n } else {\n childComponent = null;\n }\n\n return (\n <>\n {disabled && <InfoLabel mode={\"warn\"}>\n <Typography>This property can&apos;t be edited</Typography>\n <Typography variant={\"caption\"}>\n You may not have permission to\n edit it or it is defined in code and cannot be modified.\n </Typography>\n </InfoLabel>}\n\n <div className=\"flex mt-2 justify-between\">\n <div className={\"w-full flex flex-col gap-2\"}>\n <WidgetSelectView\n initialProperty={values}\n value={selectedFieldConfigId as PropertyConfigId}\n onValueChange={(value) => onWidgetSelectChanged(value as PropertyConfigId)}\n open={selectOpen}\n onOpenChange={(open, hasValue) => {\n if (!hasValue) {\n onDismiss?.();\n }\n setSelectOpen(open);\n }}\n disabled={disabled}\n showError={Boolean(selectedWidgetError)}\n existing={existing}\n propertyConfigs={propertyConfigs}\n inArray={inArray} />\n\n {!!selectedWidgetError &&\n <Typography variant=\"caption\"\n className={\"ml-3.5\"}\n color={\"error\"}>Required</Typography>}\n\n {/*<Typography variant=\"caption\" className={\"ml-3.5\"}>Define your own custom properties and*/}\n {/* components</Typography>*/}\n\n </div>\n\n {onDelete && values?.id &&\n <IconButton\n variant={\"ghost\"}\n className=\"m-4\"\n disabled={disabled}\n onClick={() => setDeleteDialogOpen(true)}>\n <DeleteIcon />\n </IconButton>}\n </div>\n\n <div className={\"grid grid-cols-12 gap-y-8 mt-6 mb-8\"}>\n {includeIdAndTitle &&\n <CommonPropertyFields showErrors={showErrors}\n disabledId={existing}\n isNewProperty={!existing}\n disabled={disabled}\n autoUpdateId={autoUpdateId}\n ref={nameFieldRef} />}\n\n {childComponent}\n\n <div className={\"col-span-12\"}>\n <AdvancedPropertyValidation disabled={disabled} />\n </div>\n </div>\n\n {onDelete &&\n <ConfirmationDialog open={deleteDialogOpen}\n onAccept={() => onDelete(values?.id, propertyNamespace)}\n onCancel={() => setDeleteDialogOpen(false)}\n title={<div>Delete this property?</div>}\n body={\n <div> This will <b>not delete any\n data</b>, only modify the\n collection.</div>\n } />}\n\n </>\n );\n}\n\nconst idRegEx = /^[a-zA-Z_][a-zA-Z0-9_]*$/;\n\nfunction validateId(value?: string, existingPropertyKeys?: string[]) {\n\n let error;\n if (!value) {\n error = \"You must specify an id for the field\";\n }\n if (value && !value.match(idRegEx)) {\n error = \"The id can only contain letters, numbers and underscores (_), and not start with a number\";\n }\n if (value && existingPropertyKeys && existingPropertyKeys.includes(value)) {\n error = \"There is another field with this ID already\";\n }\n return error;\n}\n\nfunction validateName(value: string) {\n let error;\n if (!value) {\n error = \"You must specify a title for the field\";\n }\n return error;\n}\n\nconst WIDGET_TYPE_MAP: Record<PropertyConfigId, string> = {\n text_field: \"Text\",\n multiline: \"Text\",\n markdown: \"Text\",\n url: \"Text\",\n email: \"Text\",\n switch: \"Boolean\",\n user_select: \"Users\",\n select: \"Select\",\n multi_select: \"Select\",\n number_input: \"Number\",\n number_select: \"Select\",\n multi_number_select: \"Select\",\n file_upload: \"File\",\n multi_file_upload: \"File\",\n relation: \"Relation\",\n reference: \"Reference\",\n reference_as_string: \"Text\",\n multi_references: \"Reference\",\n date_time: \"Date\",\n group: \"Group\",\n key_value: \"Group\",\n repeat: \"Array\",\n custom_array: \"Array\",\n block: \"Group\"\n};\n\nfunction WidgetSelectView({\n initialProperty,\n value,\n onValueChange,\n open,\n onOpenChange,\n disabled,\n showError,\n existing,\n propertyConfigs,\n inArray\n}: {\n initialProperty?: PropertyWithId,\n value?: PropertyConfigId,\n onValueChange: (value: string) => void,\n showError: boolean,\n open: boolean,\n onOpenChange: (open: boolean, hasValue: boolean) => void,\n disabled: boolean,\n existing: boolean,\n propertyConfigs: Record<string, PropertyConfig>,\n inArray?: boolean\n}) {\n\n const allSupportedFields = Object.entries(supportedFields).concat(Object.entries(propertyConfigs));\n\n const displayedWidgets = (inArray\n ? allSupportedFields.filter(([_, propertyConfig]) => !isPropertyBuilder(propertyConfig.property as Property) && (propertyConfig.property as Property)?.type !== \"array\")\n : allSupportedFields)\n .map(([key, propertyConfig]) => ({\n [key]: propertyConfig\n }))\n .reduce((a, b) => {\n return {\n ...a,\n ...b\n }\n }, {});\n\n const key = value;\n const propertyConfig = key ? (DEFAULT_FIELD_CONFIGS[key] ?? propertyConfigs[key]) : undefined;\n const baseProperty = propertyConfig?.property;\n const baseFieldConfig = baseProperty && !isPropertyBuilder(baseProperty as Property) ? getFieldConfig(baseProperty as Property, propertyConfigs) : undefined;\n const computedFieldConfig = baseFieldConfig && propertyConfig ? mergeDeep(baseFieldConfig, propertyConfig) : propertyConfig;\n\n const groups: string[] = [...new Set(Object.keys(displayedWidgets).map(key => {\n const group = WIDGET_TYPE_MAP[key as PropertyConfigId];\n if (group) {\n return group;\n }\n return \"Custom/Other\"\n }))];\n\n return <>\n <div\n onClick={() => {\n if (!disabled) {\n onOpenChange(!open, Boolean(value));\n }\n }}\n className={cls(\n \"select-none rounded-md text-sm py-2 px-1 transition-colors duration-200\",\n !disabled && \"hover:bg-surface-50 dark:hover:bg-surface-800 cursor-pointer\",\n \"relative flex items-center mb-2\",\n )}>\n {!value && <em>Select a property widget</em>}\n {value && computedFieldConfig && <div\n className={cls(\n \"flex items-center\")}>\n <div className={\"mr-4\"}>\n <PropertyConfigBadge propertyConfig={computedFieldConfig} />\n </div>\n <div className={\"flex flex-col items-start text-left\"}>\n <div className=\"font-semibold text-text-primary dark:text-text-primary-dark tracking-tight\">{computedFieldConfig.name}</div>\n <Typography variant={\"caption\"}\n className=\"text-text-secondary dark:text-text-secondary-dark mt-0.5\">\n {computedFieldConfig.description}\n </Typography>\n </div>\n </div>}\n </div>\n <Dialog open={open}\n onOpenChange={(open: boolean) => onOpenChange(open, Boolean(value))}\n maxWidth={\"4xl\"}>\n <DialogTitle>\n Select a property widget\n </DialogTitle>\n <DialogContent>\n <div>\n {groups.map(group => {\n return <div key={group} className={\"mt-4\"}>\n <Typography variant={\"label\"}>{group}</Typography>\n <div className={\"grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-2 mt-4\"}>\n {Object.entries(displayedWidgets).map(([key, propertyConfig]) => {\n const groupKey = WIDGET_TYPE_MAP[key as PropertyConfigId];\n if (groupKey === group) {\n return <WidgetSelectViewItem\n key={key}\n initialProperty={initialProperty}\n onClick={() => {\n onValueChange(key);\n onOpenChange(false, true);\n }}\n propertyConfig={propertyConfig}\n existing={existing} />;\n }\n return null;\n })}\n </div>\n </div>;\n })}\n {/*{displayedWidgets.map(([key, propertyConfig]) => {*/}\n {/* return <WidgetSelectViewItem*/}\n {/* key={key}*/}\n {/* initialProperty={initialProperty}*/}\n {/* onClick={() => {*/}\n {/* onValueChange(key);*/}\n {/* onOpenChange(false);*/}\n {/* }}*/}\n {/* propertyConfig={propertyConfig}*/}\n {/* existing={existing}/>;*/}\n {/*})}*/}\n </div>\n </DialogContent>\n </Dialog>\n </>;\n}\n\nexport interface PropertySelectItemProps {\n onClick?: () => void;\n initialProperty?: PropertyWithId;\n propertyConfig: PropertyConfig;\n existing: boolean;\n}\n\nexport function WidgetSelectViewItem({\n onClick,\n initialProperty,\n // optionDisabled,\n propertyConfig,\n existing\n}: PropertySelectItemProps) {\n const baseProperty = propertyConfig.property;\n const shouldWarnChangingtype = existing && !isPropertyBuilder(baseProperty as Property) && (baseProperty as Property).type !== initialProperty?.type;\n\n return <Card\n onClick={onClick}\n className={\"flex flex-row items-center px-4 py-2 m-1\"}>\n <div\n className={cls(\n \"flex flex-row items-center text-base min-h-[48px]\",\n )}>\n <div className={\"mr-8\"}>\n <PropertyConfigBadge propertyConfig={propertyConfig} disabled={shouldWarnChangingtype} />\n </div>\n <div>\n <div className={\"flex flex-row gap-2 items-center\"}>\n {shouldWarnChangingtype && <Tooltip\n title={\"This widget uses a different data type than the initially selected widget. This can cause errors with existing data.\"}>\n <WarningIcon size=\"smallest\" className={\"w-4\"} />\n </Tooltip>}\n <Typography\n variant={\"label\"}\n color={shouldWarnChangingtype ? \"secondary\" : undefined}>{propertyConfig.name}</Typography>\n </div>\n\n <Typography variant={\"caption\"}\n color={\"secondary\"}\n className={\"max-w-sm\"}>\n {propertyConfig.description}\n </Typography>\n\n </div>\n </div>\n </Card>\n}\n"],"names":["EnumForm","t0","$","_c","enumValues","onValuesChanged","onError","updateIds","disabled","allowDataInference","getData","t1","enum","t2","values","enumErrors","hasAnyError","forEach","enumValue","index","fieldError","label","id","errors","t3","initialValues","validateOnChange","validation","formex","useCreateFormex","values_0","errors_0","t4","t5","useEffect","t6","t7","t8","EnumFormFields","enumValuesPath","shouldUpdateId","setFieldValue","useFormex","lastInternalIdAdded","setLastInternalIdAdded","React","useState","editDialogIndex","setEditDialogIndex","inferring","setInferring","Symbol","for","Set","inferredValuesRef","useRef","inferredValues","current","internalId","justAdded","entryError","has","buildEntry","then","data","flatData","flat","fieldData","Array","from","currentEnumValues","foundEnumValues","extractEnumFromValues","newEnumValues","filter","some","v","enumValue_0","add","catch","_temp","finally","inferValues","value","t9","t10","t11","undefined","t12","t13","t14","t15","e","console","error","EnumEntry","memo","EnumEntryInternal","updateId","autoFocus","onDialogOpen","inferredEntry","shouldUpdateIdRef","getIn","idValue","labelValue","currentLabelRef","Boolean","DebouncedTextField","areEqual","prevProps","nextProps","equal","EnumEntryDialog","open","onClose","idError","open_0","SwitchControl","field","form","tooltip","size","allowIndeterminate","name","checked","formControlLabel","GeneralPropertyValidation","handleChange","validationRequired","validationUnique","field_0","form_0","validationRequiredMessage","StringPropertyValidation","length","lowercase","matches","max","min","trim","uppercase","matchesError","matchesValue","serializeRegExp","matchesStringValue","validationLowercase","validationUppercase","validationTrim","field_1","form_1","validationLength","validationMin","validationMax","validationMatches","ArrayPropertyValidation","ValidationPanel","children","EnumPropertyField","multiselect","showErrors","propertyNamespace","setFieldError","snackbarContext","useSnackbarController","defaultValue","valuesEnumValues","useMemo","resolveEnumValues","enumIds","map","includes","type","message","fullPropertyPath","hasError","res","entry","toString","fileTypes","StoragePropertyField","multiple","existing","baseStoragePath","acceptedFiles","fileName","maxSize","storagePath","storeUrl","includeBucketUrl","imageResize","imageResizeMaxWidth","imageResizeMaxHeight","imageResizeMode","imageResizeFormat","imageResizeQuality","fileNameValue","storagePathValue","T0","T1","t16","t17","t18","t19","t20","t21","maxSizeValue","imageResizeMaxWidthValue","imageResizeMaxHeightValue","t22","imageResizeModeValue","t23","imageResizeFormatValue","imageResizeQualityValue","t24","storedValue","fileTypesValue","isArray","allFileTypesSelected","t25","handleTypesChange","hasFilenameCallback","hasStoragePathCallback","ExpandablePanel","t26","t27","t28","Object","entries","t29","value_0","preventDefault","stopPropagation","_temp3","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","t41","t42","e_0","value_1","target","parseInt","t43","t44","e_1","value_2","t45","t46","e_2","value_3","t47","t48","value_4","t49","t50","_temp4","t51","t52","value_5","t53","t54","t55","t56","_temp5","e_3","value_6","numValue","selected_1","selected","charAt","toUpperCase","slice","selected_0","_temp2","join","v_0","PropertyFieldPreview","property","propertyKey","onClick","includeName","includeEditButton","propertyConfigs","useCustomizationController","getFieldConfig","propertyConfig","cls","columnType","NonEditablePropertyPreview","isPropertyBuilder","AIModifiedPathsContext","createContext","AIModifiedPathsProvider","modifiedPaths","setModifiedPaths","generationCounter","setGenerationCounter","operations","prev","newSet","op","path","parts","split","addModifiedPaths","prev_1","newSet_0","p","startsWith","delete","clearPath","clearAllPaths","path_0","p_0","isPathModified","prev_0","useAIModifiedPaths","useContext","PropertyTree","namespace","selectedPropertyKey","onPropertyClick","properties","propertiesOrder","propertiesOrderProp","additionalFields","onPropertyMove","onPropertyRemove","className","inferredPropertyKeys","propertyKeys","keys","key","filteredOrder","missingKeys","key_0","activationConstraint","distance","coordinateGetter","sortableKeyboardCoordinates","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","handleDragEnd","event","active","over","activeId","String","overId","activeKey","pop","overKey","oldIndex","indexOf","newIndex","newPropertiesOrder","removed","splice","items","key_1","getFullId","DndContext","closestCenter","restrictToVerticalAxis","SortableContext","verticalListSortingStrategy","additionalField","find","warn","PropertyTreeEntry","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","CSS","Translate","zIndex","position","style","isPropertyInferred","fullId","fullIdPath","getFullIdPath","subtree","editable","aiModifiedPaths","isAIModified","defaultBorderMixin","left","top","bottom","currentIndex","newOrder","k","unshift","currentIndex_0","newOrder_0","k_0","push","MapPropertyField","propertyDialogOpen","setPropertyDialogOpen","setSelectedPropertyKey","selectedPropertyNamespace","setSelectedPropertyNamespace","Error","currentPropertiesOrder","onPropertyCreated","propertiesPath","idToPropertiesPath","propertiesOrderPath","namespaceToPropertiesOrderPath","currentPropertiesOrder_0","namespaceToPropertiesPath","deleteProperty","selectedPropertyFullId","replaceAll","selectedProperty","empty","propertiesOrder_0","namespace_0","propertyKey_0","namespace_1","spreadChildren","RepeatPropertyField","touched","ofProperty","ofPropertyError","onPropertyChanged","widget","CommonPropertyFields","forwardRef","ref","disabledId","autoUpdateId","setFieldTouched","nameError","descriptionError","newNameValue","idTouched","toSnakeCase","fontSize","newIdValue","nameTouched","prettifyIdentifier","description","StringPropertyField","widgetId","columnTypeValue","columnTypeError","isIdValue","isIdError","columnTypePath","v_1","isIdPath","v_2","BooleanPropertyField","BlockPropertyField","oneOf","addChildButton","namespace_2","NumberPropertyValidation","validationLessThan","validationMoreThan","validationPositive","validationNegative","validationInteger","NumberPropertyField","parseFloat","ReferencePropertyField","asString","collectionRegistry","useCollectionRegistryController","initialised","pathPath","pathValue","pathError","CollectionsSelect","props","collections","groups","ungroupedCollections","selectedCollection","collection","slug","flatMap","group","collection_0","collection_1","collection_2","col","TIMEZONES","DateTimePropertyField","modeValue","modeError","autoValueValue","autoValueError","timezoneValue","timezoneError","modePath","autoValuePath","v_3","timezonePath","v_5","v_6","tz_0","tz","v_4","t","AdvancedPropertyValidation","hideFromCollection","readOnly","KeyValuePropertyField","ON_ACTION_OPTIONS","RelationPropertyField","relationName","_relationConfig","relationConfig","targetSlug","_targetSlug","cardinality","direction","localKey","foreignKeyOnTarget","through","throughTable","table","throughSourceColumn","sourceColumn","throughTargetColumn","targetColumn","onUpdate","onDelete","showThrough","showLocalKey","showForeignKey","patch","updateRelationConfig","patch_0","current_0","currentThrough","updateThrough","_","e_4","_temp6","action_0","action","updatePropertyFromWidget","propertyData","selectedWidgetId","updatedProperty","mergeDeep","storage","multiline","markdown","email","url","userSelect","of","keyValue","mode","UrlPropertyField","urlValue","supportedFieldsIds","supportedFields","DEFAULT_FIELD_CONFIGS","config","reduce","a","b","MarkdownPropertyField","markdownValue","isMarkdownObject","htmlValue","html","transformPastedTextValue","transformPastedText","currentMarkdown","defaultConfig","updateMarkdownConfig","PropertyForm","includeIdAndName","autoOpenTypeSelect","existingProperty","inArray","existingPropertyKeys","onPropertyChangedImmediate","onDismiss","initialErrors","forceShowErrors","getController","initialValue","previousId","lastSubmittedProperty","property_0","params","doOnPropertyChanged","newPropertyWithId","controller","id_0","property_1","resetForm","validateName","validateId","isValidRegExp","debugId","validateOnInitialRender","onSubmit","formexController","submitCount","PropertyFormDialog","formProps","onCancel","onOkClicked","formexRef","helpers","handleSubmit","PropertyEditFormFields","setValues","includeIdAndTitle","selectOpen","setSelectOpen","deleteDialogOpen","setDeleteDialogOpen","getFieldId","selectedFieldConfigId","setSelectedFieldConfigId","deferredValues","useDeferredValue","nameFieldRef","selectedWidgetError","newSelectedWidgetId","setTimeout","focus","onWidgetSelectChanged","childComponent","hasValue","idRegEx","match","WIDGET_TYPE_MAP","text_field","switch","user_select","select","multi_select","number_input","number_select","multi_number_select","file_upload","multi_file_upload","relation","reference","reference_as_string","multi_references","date_time","key_value","repeat","custom_array","block","WidgetSelectView","initialProperty","onValueChange","onOpenChange","allSupportedFields","concat","displayedWidgets","propertyConfig_1","baseProperty","baseFieldConfig","computedFieldConfig","Dialog","DialogContent","group_0","key_2","propertyConfig_2","groupKey","propertyConfig_0","WidgetSelectViewItem","shouldWarnChangingtype"],"mappings":"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"}