Closed (fixed)
Project:
Experience Builder
Version:
1.x-dev
Component:
Page builder
Priority:
Normal
Category:
Feature request
Assigned:
Unassigned
Reporter:
Created:
9 Aug 2025 at 17:31 UTC
Updated:
26 Sep 2025 at 15:49 UTC
Jump to comment: Most recent, Most recent file

Comments
Comment #2
lauriiiParent issue is already tracked as a stable blocker.
Comment #4
balintbrewsComment #5
bnjmnmQuestion 1
Step 1 in the Libraries instructions includes
Merge the listing of Components and Dynamic components under the label Components.Dynamic components are already organized into collapsible subsections sections based on their
block_category:, which would mean two different forms of collection next to each other:Perhaps this is fine and is why there's no additional explanation, but I'd like to confirm that.
Question 2
Is adding a new folder done via a dialog with a single text field for the dialog name, or was a different type of interaction envisioned? Are there any format requirements of the name provided?
Question 3
In the screenshot for Manage Library the root level shows only folders. Item 4 mentions "Keep support for displaying items at the root level." which I believe means un-foldered items can be displayed alongside the folders.
Question 4
In the screenshot for Manage Library I don't see any controls where one might be able to rename or delete existing folders. Even if this is something to be added later, knowing where the controls might be will inform how this gets implemented.
Question 5
I could not find a folder icon in Radix. Could the svg used in the designs be provided in this issue?
Question 6
Do folder weights have any impact at this time? Based on the current requirements it looks like they're all being set to 0 and sorting is alphabetical - which is fine of course but I wanted to be sure I wasn't overlooking somewhere they get used.
Comment #6
balintbrewsI just had a conversation with @lauriii. Internal code components should live under Manage library. I adjusted the issue summary accordingly.
Comment #7
balintbrewsAnswers to questions in #5:
@/components/Dialogshould be sufficient. The only requirement is that folder names need to be unique within a parent (i.e.components,patterns,code).0weights are what's in scope of this issue.Comment #8
callumharrod commentedComment #9
balintbrews#8.3: Yes, we should. I discussed that with @lauriii.
Comment #11
wim leers#3539729: Implement Folder config entity is in! That means this is unblocked now (and won't need to chase changes anymore 😅).
Comment #12
bnjmnmSetting to NR. e2e tests, particularly Playwright at the moment, are a bit flaky, so don't let fails there get in the way of a review.. there's plenty that needs looking at.
Library
Manage Library
Comment #13
wim leersSeems like this incorporated most of the scope of #3541364: Delete folders? That makes this MR way bigger (and much more back-end centric) than what is described in this issue's summary.
If this is just more pragmatic: WFM. But landing this massive MR (
44 files, +2584, -285) then is likely to take longer.Comment #14
wim leersDiscussed with @bnjmnm: this includes the auto-creation subset of #3541364, and we won't be extracting that out of this MR: that'll be too painful/not worth it. See #3541364-5: Delete folders.
Comment #16
balintbrewsA proposal by @jessebaker that we decided to implement:
In Manage library, let's display both internal and exposed code components under the Code tab. The backend already supports the organization into folders for
JavaScriptComponententities, which will be separate from organizing theComponententities, which will take effect under the Components tab — where exposed code components are represented byComponententities.Comment #17
balintbrewsI approved from the frontend side with the following observations:
@/components/Dialogand handle errors, see #note_575780.I think the issue can land without these. @bnjmnm, I'll leave it up to you how you would like to structure the follow-up issue(s).
Comment #18
wim leersNice progress!
Most important: the
Folderauto-creation logic is incorrect AFAICT: https://git.drupalcode.org/project/experience_builder/-/merge_requests/1...Because it is easily missed: I reopened a number of threads that have been IMHO closed too early.
Comment #19
wim leersDiscussed with @bnjmnm last night. We want to get this merged before the big rename.
Ben tackled the needed FE changes last night, I'll tackle the BE changes needed to be able to merge this (if any remain, that is), plus updating related issues to ensure whatever scope this did not tackle, will be tackled elsewhere.
Comment #20
wim leersFor the BE, follow-ups:
Still to do: organize follow-up issues for @balintbrews' remarks in #17. I've created one of those (for #17.1): #3543533: [PP-1] Display both internal and exposed code components in "Manage library". In doing so, I paved the path as much in this MR as I could, which involved making
xb_test_foldersuse the test code components that already existed in HEAD before this MR (which are exposed).Doing that surfaced an interesting consequence of a loose end from back in January:
JsComponent::createConfigEntity()always setscategory: @todo, which now results in a "@todo"Foldergetting created forComponents, whenever a code component changes fromstatus: falsetostatus: true. Updated test expectations. We'll have to fix it at #3541364-9: Delete folders.Now just needs a conflict to be solved, @jessebaker is handling that :)
Comment #22
wim leersYay, it's in! 🚀
Back to @bnjmnm for creating follow-ups for @balintbrews' #17 — except #17.1, that's already taken care of — see #20.
Comment #23
bnjmnmFollowups created as needed:
Comment #24
bnjmnmComment #25
wim leersThanks! (Linking to make this issue more discoverable from those new issues.)
Comment #26
wim leersActually, AFAICT #3543795: Broaden Manage Library -> Code Tab scope is a duplicate of what I already created: #3543533: [PP-1] Display both internal and exposed code components in "Manage library". (See #20.) Closed.
Comment #27
mayur-sose commentedVerified below scenarios and please check failing scenarios TC9, TC10 and TC19:
Components: SDCs, blocks, external/internal code components.
Patterns: correct ones.
We can see 422 error message in console and network tab.
Comment #28
mayur-sose commentedI have created follow-up issues for the bugs identified above:
https://www.drupal.org/project/canvas/issues/3545660
https://www.drupal.org/project/canvas/issues/3545655
https://www.drupal.org/project/canvas/issues/3544776