Commit Graph

186 Commits

Author SHA1 Message Date
Andrew Kingston 73a229b9ec Add proper validation for nesting illegal combinations of components 2022-10-20 16:03:53 +01:00
Andrew Kingston 1dffcd8d6c Update how grid DND styles are applied to remove flashing 2022-10-20 08:43:33 +01:00
Andrew Kingston 9a94e9da7c Use a container as the DND placeholder and use approx size when dragging into grids 2022-10-19 14:39:28 +01:00
Andrew Kingston a870d2473d Allow grid DND without selecting components 2022-10-18 18:29:21 +01:00
Andrew Kingston 15bbc78847 Add grid functionality separately to DND 2022-10-18 16:18:22 +01:00
Andrew Kingston 774566d03b Merge branch 'dnd-improvements' of github.com:Budibase/budibase into cheeks-lab-day-grid 2022-10-18 08:12:11 +01:00
Andrew Kingston 682203fbda Only transition padding when expanding components during DND, but remove it immediately on drop to avoid layout thrashing 2022-10-17 09:00:55 +01:00
Andrew Kingston 0e83bcfe9e Update styles of padded DND components 2022-10-14 20:30:58 +01:00
Andrew Kingston 3f429ff3ce Lint and prevent scrolling to selected component when starting dragging 2022-10-14 19:45:47 +01:00
Andrew Kingston 1b08e88c6f Fix double empty state around blocks 2022-10-14 18:59:32 +01:00
Andrew Kingston 2ffb29dddf Invert some client store dependencies to improve performance and prevent dependency cycles 2022-10-14 18:16:19 +01:00
Andrew Kingston 4e94b6633f Don't reset component padded state for DND until dragging stops, to prevent jankiness due to losing space 2022-10-14 15:45:02 +01:00
Andrew Kingston f7d6e8db60 Improve DND experience, use correct size of drop placeholder and don't drop if the position is unchanged 2022-10-11 16:02:09 +01:00
Andrew Kingston efe9425d3d Improve column/row detection by appending an ephemeral child component and tune timings 2022-10-11 08:52:45 +01:00
Andrew Kingston 608e41277a Reduce padding when dragging over a component tree and remove unused component class names 2022-10-08 15:32:36 +01:00
Andrew Kingston c2b32f8c5e Throttle updates to prevent all jank and revert to component center breakboints for DND candidates 2022-10-08 15:04:18 +01:00
Andrew Kingston 09f2cc1f72 Reduce jank by computing symmetrical component breakpoint whens considering DND candidate positions and ignoring the hidden selected component 2022-10-07 20:00:25 +01:00
Andrew Kingston d4a767f93e Improve row vs column detection to fix any edge cases 2022-10-07 08:46:38 +01:00
Andrew Kingston c4bb3ac014 Only explode components when dragging over them 2022-10-07 08:20:51 +01:00
Andrew Kingston bb8388133a Rewrite drag and drop from scratch using mouse position heuristics 2022-10-07 08:05:44 +01:00
Andrew Kingston 9c82a9d073 Don't clear drop target on invalid selection 2022-10-06 09:17:26 +01:00
Andrew Kingston e0fcb20fbe Expand component trees with padding when dragging and dropping 2022-09-28 14:16:09 +01:00
Andrew Kingston 0a80947b51 Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-grid 2022-09-26 16:22:13 +01:00
Martin McKeaveney 45e9da64e2 Merge pull request #7644 from Budibase/custom-css-upgrades
Custom CSS upgrades
2022-09-21 15:35:42 +01:00
Andrew Kingston 45627661f1 Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-grid 2022-09-20 17:23:52 +01:00
Rory Powell 45a43baee2 Merge branch 'master' into develop 2022-09-12 14:05:36 +01:00
Andrew Kingston 1bc6f30b6c Fix component empty state and invalid state styling 2022-09-12 08:50:22 +01:00
Andrew Kingston e07cffbc59 Remove log 2022-09-06 12:26:56 +01:00
Andrew Kingston d6d26e126c Allow custom CSS to be bindable and allow overriding via conditional UI 2022-09-05 16:35:25 +01:00
Andrew Kingston b839325a86 Add initial work on grid layout 2022-08-26 08:47:50 +01:00
Mel O'Hagan 075611b2fa Update CSS conditional UI 2022-08-22 16:45:59 +01:00
Andrew Kingston 3b3d48196e Transparently hot reload app preview when inserting a custom component bundle and reload relevant components 2022-08-11 17:05:42 +01:00
Andrew Kingston eab1b93c24 Update client library to full handle custom components 2022-08-10 15:34:00 +01:00
Andrew Kingston 6b9898f9ad Merge pull request #6735 from Budibase/fix/dom-children
Replace incorrect usages of element.childNodes with element.children
2022-07-21 09:24:47 +01:00
Andrew Kingston c9ee465507 Replace incorrect usages of element.childNodes with element.children 2022-07-15 13:47:39 +01:00
Andrew Kingston 80018e9668 Visually hide components when cutting but do not remove from real definition 2022-07-15 13:09:43 +01:00
Andrew Kingston b5d635c83f Merge branch 'develop' of github.com:Budibase/budibase into new-design-ui 2022-06-15 15:32:33 +01:00
Andrew Kingston 2bef536e9a Fix issue where required settings that depend on other settings were still blocking rendering 2022-06-15 10:17:34 +01:00
Andrew Kingston b0fcb0f339 Prevent inline editing of components with missing required settings 2022-06-14 15:34:33 +01:00
Andrew Kingston e097f82b5d Update client library so that component placeholders are always shown when required settings are missing 2022-06-13 12:09:29 +01:00
Andrew Kingston 6e83c96236 Show empty screen placeholder with a CTA to add a component 2022-06-07 13:41:17 +01:00
Dean f1111fffca Updated approach to focus behaviour. Placeholder now updates to direct the user to the next required field they haven't entered 2022-05-30 12:57:10 +01:00
Andrew Kingston fd532a88d5 Improve performance when determining client component icons and update layout to allow for a better visual selection of the navigation section 2022-05-23 12:22:42 +01:00
Andrew Kingston 3c8558e1a0 Update preview indicator offsets 2022-05-17 14:34:54 +01:00
Andrew Kingston 8cdbb690eb Add icons to app preview selection indicators 2022-05-17 14:33:12 +01:00
Andrew Kingston ff47e8acd3 Scroll to the selected component inside the app preview 2022-05-17 14:10:21 +01:00
Andrew Kingston 550511d404 Render screenslot when showing legacy layouts and remove concept of preview type 2022-05-12 09:42:25 +01:00
Andrew Kingston f66f3b7935 Use 'Screen' for the name when selecting the root screen component 2022-05-10 14:10:26 +01:00
Andrew Kingston c2d61d8ebc Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-devtools 2022-04-06 11:50:43 +01:00
Andrew Kingston 9500203515 Add event context to button actions to allow passing in params at run time and add corresponding data bindings 2022-03-15 11:16:51 +00:00
Dean b67b34928a Initial Commit for Issue/3819. World map component added and a small change to the Component draggable behaviour to accomodate it. 2022-03-08 16:41:21 +00:00
Andrew Kingston 755e12a24d Add full featured component settings and bindings devtools tabs 2022-02-24 21:48:54 +00:00
Andrew Kingston c944d1fdf5 Update devtools with new features 2022-02-24 15:36:21 +00:00
Andrew Kingston 0fcfa43790 Fix className autocorrect and make client load time optional 2022-02-24 14:14:55 +00:00
Andrew Kingston 66715b8290 Merge branch 'develop' of github.com:Budibase/budibase into cheeks-lab-day-devtools 2022-02-24 14:03:29 +00:00
Andrew Kingston eb1edcd1cc Simply and improve core client library logic 2022-02-01 16:32:37 +00:00
Andrew Kingston 27c2b62223 Remove log statements 2022-02-01 11:55:31 +00:00
Andrew Kingston caf8991d92 Cache the determination of client component settings and simplify initialisationlogic 2022-01-31 18:54:04 +00:00
Andrew Kingston 4b7fe15598 Add experimental support for caching the creation of HBS template functions 2022-01-29 18:53:21 +00:00
Andrew Kingston 604788a244 Fix issue with multiple enrichments before components mount without affecting other components 2022-01-25 11:22:26 +00:00
Andrew Kingston 7656887c1a Fix rare issue which could occur when enriching component props twice before an initial render has taken place 2022-01-24 19:25:19 +00:00
Andrew Kingston aab7adce03 Update remaining dependency issues in client 2022-01-20 10:16:13 +00:00
Andrew Kingston 5fad127f94 Update remaining usage of API in client library 2022-01-20 09:57:57 +00:00
Andrew Kingston 78a3f807a3 Lint 2021-12-17 10:43:27 +00:00
Andrew Kingston 58e0daeb8c Remove initial render of components with undefined props by passing in initial props without triggering svelte invalidation 2021-12-17 09:18:07 +00:00
Andrew Kingston 86065084c1 Update core component handling to use svelte function to manually control props in order to avoid triggering additional reactive statements and improve performance 2021-12-17 08:22:40 +00:00
Andrew Kingston 1b3317a114 Add devtools to app preview and add ability to preview apps as different roles 2021-11-26 13:25:02 +00:00
Andrew Kingston 9057b8e521 Update logic for determining whether to show empty state or not 2021-11-18 20:38:55 +00:00
Andrew Kingston a9a50545c9 Be more explicit about the boolean nature of component settings in the manifest and add back in a render key to fix toggling contenteditable attribute on dom elements 2021-11-18 20:32:42 +00:00
Andrew Kingston 347a0d1d0f Fix crash when component definition is not found 2021-11-18 14:24:10 +00:00
Andrew Kingston 9420ee2b5e Remove log statements 2021-11-16 17:52:14 +00:00
Andrew Kingston f61d89436b Optimise core memoization of client component props to improve performance significantly 2021-11-16 16:29:31 +00:00
Andrew Kingston ce75b8c9a7 Disable drag and drop for components in the selected path when edit mode is enabled to fix firefox issue with text selection when draggable attribute is set 2021-11-16 13:17:34 +00:00
Andrew Kingston 07e455257c Prevent dragging of a component while being edited 2021-11-16 11:46:46 +00:00
Andrew Kingston 2adbaea026 Merge develop into editable text lab day 2021-11-16 11:14:46 +00:00
Andrew Kingston df455c2719 Add data block component 2021-11-12 15:19:25 +00:00
Andrew Kingston a7849eac7d Add card list with search block. Add concept of nested settings which can consume their own contexts and are not enriched at the top level 2021-11-08 14:35:58 +00:00
Andrew Kingston e6ffccaff7 Add generic block structure with support for writing blocks like normal svelte components rather than a JSON builder 2021-11-02 08:45:27 +00:00
Andrew Kingston c48a56b997 Fix issue editing components in the preview when nested inside another draggable component 2021-10-28 15:52:07 +01:00
Andrew Kingston b522726afc Allow in-preview editing of paragraphs and headings 2021-10-28 12:43:31 +01:00
Andrew Kingston 495c20f851 Simplify client app component re-render keying 2021-09-20 15:41:20 +01:00
Andrew Kingston 488ec4d988 Refactor client app data tags to be classnames and simplify logic 2021-09-20 15:34:51 +01:00
Andrew Kingston 10f754a9ad Remove preview specific data tags from components when running real apps 2021-09-20 12:16:23 +01:00
Andrew Kingston e19d17c4f5 Prevent DND targetting either above or below the screen/layout, and fix bug determinging whether a drop target is valid 2021-09-20 09:12:35 +01:00
Andrew Kingston 8cf3971b47 Only allow dropping inside empty components that accept children to massively reduce the amount of unwanted drop targets due to parent container components 2021-09-20 08:26:44 +01:00
Andrew Kingston 54bf420ef8 Apply grab cursor when hovering over a draggable component 2021-09-17 14:30:54 +01:00
Andrew Kingston bdc86e4c22 Add above/below dnd and support for dropping above/below components which also allow dropping inside 2021-09-16 14:28:44 +01:00
Andrew Kingston 97800563c4 Prevent dragging the screen or layout components, and prevent dragging any layout components when previewing a screen 2021-09-16 07:52:49 +01:00
Andrew Kingston 0ce0f5c823 Add initial DND implementation with working functionality for dropping inside components 2021-09-16 07:28:59 +01:00
Andrew Kingston 047cd4ea88 Merge standard-components into the client library 2021-09-01 11:41:48 +01:00
Andrew Kingston 796dc24b06 Show component hidden by conditional UI if they would otherwise hide the selected component 2021-08-23 14:01:57 +01:00
Andrew Kingston 08171c1e68 Fix dependency loop in client stores 2021-08-20 09:27:38 +01:00
Andrew Kingston 73643793c9 Simplify logic for determine default visibility for a conditional UI component 2021-07-26 13:16:45 +01:00
Andrew Kingston 204de7c4d3 Add initial work on dynamically updating any setting via conditional UI 2021-07-22 19:19:37 +01:00
Andrew Kingston 5e5332cd4f Add initial work on evaluation of conditional UI conditions in client library 2021-07-21 14:03:49 +01:00
Andrew Kingston be2ec9b427 Aggressively optimise client library to prevent handlebars enrichment where possible 2021-06-25 15:04:27 +01:00
Andrew Kingston be03bbe5bc Remove transition setting from components 2021-06-18 12:41:15 +01:00
Andrew Kingston 4a3c480b26 Prevent hovering over layout components when editing screens 2021-06-11 13:34:37 +01:00
Andrew Kingston ca88e2abe1 Allow user styles to override placeholder styles 2021-06-11 09:14:22 +01:00
Andrew Kingston f76898d80e Add manifest option to prevent showing component empty states 2021-06-11 08:49:06 +01:00