@design.estate/dees-wcctools 3.1.2 → 3.3.0

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.
@@ -41663,9 +41663,9 @@ __publicField(WccFrame, "styles", [
41663
41663
  __runInitializers(_init, 1, WccFrame);
41664
41664
 
41665
41665
  // ts_web/elements/wcc-sidebar.ts
41666
- var _expandedElements_dec, _isNative_dec2, _dashboardRef_dec, _selectedType_dec, _selectedItem_dec, _a2, _WccSidebar_decorators, _init2, _selectedItem, _selectedType, _dashboardRef, _isNative2, _expandedElements;
41666
+ var _collapsedSections_dec, _expandedElements_dec, _isNative_dec2, _dashboardRef_dec, _selectedType_dec, _selectedItem_dec, _a2, _WccSidebar_decorators, _init2, _selectedItem, _selectedType, _dashboardRef, _isNative2, _expandedElements, _collapsedSections;
41667
41667
  _WccSidebar_decorators = [t4("wcc-sidebar")];
41668
- var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ attribute: false })], _selectedType_dec = [n5({ attribute: false })], _dashboardRef_dec = [n5()], _isNative_dec2 = [n5()], _expandedElements_dec = [r5()], _a2) {
41668
+ var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ attribute: false })], _selectedType_dec = [n5({ attribute: false })], _dashboardRef_dec = [n5()], _isNative_dec2 = [n5()], _expandedElements_dec = [r5()], _collapsedSections_dec = [r5()], _a2) {
41669
41669
  constructor() {
41670
41670
  super(...arguments);
41671
41671
  __privateAdd(this, _selectedItem, __runInitializers(_init2, 8, this)), __runInitializers(_init2, 11, this);
@@ -41673,6 +41673,8 @@ var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ att
41673
41673
  __privateAdd(this, _dashboardRef, __runInitializers(_init2, 16, this)), __runInitializers(_init2, 19, this);
41674
41674
  __privateAdd(this, _isNative2, __runInitializers(_init2, 20, this, false)), __runInitializers(_init2, 23, this);
41675
41675
  __privateAdd(this, _expandedElements, __runInitializers(_init2, 24, this, /* @__PURE__ */ new Set())), __runInitializers(_init2, 27, this);
41676
+ __privateAdd(this, _collapsedSections, __runInitializers(_init2, 28, this, /* @__PURE__ */ new Set())), __runInitializers(_init2, 31, this);
41677
+ __publicField(this, "sectionsInitialized", false);
41676
41678
  }
41677
41679
  render() {
41678
41680
  return x`
@@ -41715,7 +41717,7 @@ var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ att
41715
41717
  padding: 0.5rem 0;
41716
41718
  }
41717
41719
 
41718
- h3 {
41720
+ .section-header {
41719
41721
  padding: 0.3rem 0.75rem;
41720
41722
  font-size: 0.65rem;
41721
41723
  font-weight: 500;
@@ -41727,12 +41729,45 @@ var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ att
41727
41729
  background: rgba(59, 130, 246, 0.03);
41728
41730
  border-bottom: 1px solid var(--border);
41729
41731
  border-top: 1px solid var(--border);
41732
+ display: flex;
41733
+ align-items: center;
41734
+ gap: 0.5rem;
41735
+ cursor: pointer;
41736
+ user-select: none;
41737
+ transition: all 0.15s ease;
41730
41738
  }
41731
41739
 
41732
- h3:first-child {
41740
+ .section-header:first-child {
41733
41741
  margin-top: 0;
41734
41742
  }
41735
41743
 
41744
+ .section-header:hover {
41745
+ background: rgba(59, 130, 246, 0.08);
41746
+ }
41747
+
41748
+ .section-header .expand-icon {
41749
+ font-size: 14px;
41750
+ opacity: 0.5;
41751
+ transition: transform 0.2s ease;
41752
+ }
41753
+
41754
+ .section-header.collapsed .expand-icon {
41755
+ transform: rotate(-90deg);
41756
+ }
41757
+
41758
+ .section-header .section-icon {
41759
+ font-size: 14px;
41760
+ opacity: 0.6;
41761
+ }
41762
+
41763
+ .section-content {
41764
+ overflow: hidden;
41765
+ }
41766
+
41767
+ .section-content.collapsed {
41768
+ display: none;
41769
+ }
41770
+
41736
41771
  .material-symbols-outlined {
41737
41772
  font-family: 'Material Symbols Outlined';
41738
41773
  font-weight: normal;
@@ -41866,83 +41901,130 @@ var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ att
41866
41901
  }
41867
41902
  </style>
41868
41903
  <div class="menu">
41869
- <h3>Pages</h3>
41870
- ${(() => {
41871
- const pages = Object.keys(this.dashboardRef.pages);
41872
- return pages.map((pageName) => {
41873
- const item = this.dashboardRef.pages[pageName];
41904
+ ${this.renderSections()}
41905
+ </div>
41906
+ `;
41907
+ }
41908
+ /**
41909
+ * Initialize collapsed sections from section config
41910
+ */
41911
+ initCollapsedSections() {
41912
+ if (this.sectionsInitialized) return;
41913
+ const collapsed = /* @__PURE__ */ new Set();
41914
+ for (const section of this.dashboardRef.sections) {
41915
+ if (section.collapsed) {
41916
+ collapsed.add(section.name);
41917
+ }
41918
+ }
41919
+ this.collapsedSections = collapsed;
41920
+ this.sectionsInitialized = true;
41921
+ }
41922
+ /**
41923
+ * Render all sections
41924
+ */
41925
+ renderSections() {
41926
+ this.initCollapsedSections();
41927
+ return this.dashboardRef.sections.map((section, index2) => {
41928
+ const isCollapsed = this.collapsedSections.has(section.name);
41929
+ const sectionIcon = section.icon || (section.type === "pages" ? "insert_drive_file" : "widgets");
41930
+ return x`
41931
+ <div
41932
+ class="section-header ${isCollapsed ? "collapsed" : ""}"
41933
+ @click=${() => this.toggleSectionCollapsed(section.name)}
41934
+ >
41935
+ <i class="material-symbols-outlined expand-icon">expand_more</i>
41936
+ ${section.icon ? x`<i class="material-symbols-outlined section-icon">${section.icon}</i>` : null}
41937
+ <span>${section.name}</span>
41938
+ </div>
41939
+ <div class="section-content ${isCollapsed ? "collapsed" : ""}">
41940
+ ${this.renderSectionItems(section)}
41941
+ </div>
41942
+ `;
41943
+ });
41944
+ }
41945
+ /**
41946
+ * Render items for a section
41947
+ */
41948
+ renderSectionItems(section) {
41949
+ const entries = getSectionItems(section);
41950
+ if (section.type === "pages") {
41951
+ return entries.map(([pageName, item]) => {
41874
41952
  return x`
41875
- <div
41876
- class="selectOption ${this.selectedItem === item ? "selected" : null}"
41877
- @click=${async () => {
41878
- const domtools2 = await dist_ts_exports25.DomTools.setupDomTools();
41879
- this.selectItem("page", pageName, item, 0);
41953
+ <div
41954
+ class="selectOption ${this.selectedItem === item ? "selected" : ""}"
41955
+ @click=${async () => {
41956
+ await dist_ts_exports25.DomTools.setupDomTools();
41957
+ this.selectItem("page", pageName, item, 0, section);
41880
41958
  }}
41881
- >
41882
- <i class="material-symbols-outlined">insert_drive_file</i>
41883
- <div class="text">${pageName}</div>
41884
- </div>
41885
- `;
41959
+ >
41960
+ <i class="material-symbols-outlined">insert_drive_file</i>
41961
+ <div class="text">${pageName}</div>
41962
+ </div>
41963
+ `;
41886
41964
  });
41887
- })()}
41888
- <h3>Elements</h3>
41889
- ${(() => {
41890
- const elements = Object.keys(this.dashboardRef.elements);
41891
- return elements.map((elementName) => {
41892
- const item = this.dashboardRef.elements[elementName];
41893
- const demoCount = item.demo ? getDemoCount(item.demo) : 0;
41894
- const isMultiDemo = item.demo && hasMultipleDemos(item.demo);
41965
+ } else {
41966
+ return entries.map(([elementName, item]) => {
41967
+ const anonItem = item;
41968
+ const demoCount = anonItem.demo ? getDemoCount(anonItem.demo) : 0;
41969
+ const isMultiDemo = anonItem.demo && hasMultipleDemos(anonItem.demo);
41895
41970
  const isExpanded = this.expandedElements.has(elementName);
41896
41971
  const isSelected = this.selectedItem === item;
41897
41972
  if (isMultiDemo) {
41898
41973
  return x`
41899
- <div
41900
- class="selectOption folder ${isExpanded ? "expanded" : ""} ${isSelected ? "selected" : ""}"
41901
- @click=${() => this.toggleExpanded(elementName)}
41902
- >
41903
- <i class="material-symbols-outlined expand-icon">chevron_right</i>
41904
- <i class="material-symbols-outlined">folder</i>
41905
- <div class="text">${elementName}</div>
41906
- </div>
41907
- ${isExpanded ? x`
41908
- <div class="demo-children">
41909
- ${Array.from({ length: demoCount }, (_3, i9) => {
41974
+ <div
41975
+ class="selectOption folder ${isExpanded ? "expanded" : ""} ${isSelected ? "selected" : ""}"
41976
+ @click=${() => this.toggleExpanded(elementName)}
41977
+ >
41978
+ <i class="material-symbols-outlined expand-icon">chevron_right</i>
41979
+ <i class="material-symbols-outlined">folder</i>
41980
+ <div class="text">${elementName}</div>
41981
+ </div>
41982
+ ${isExpanded ? x`
41983
+ <div class="demo-children">
41984
+ ${Array.from({ length: demoCount }, (_3, i9) => {
41910
41985
  const demoIndex = i9;
41911
41986
  const isThisDemoSelected = isSelected && this.dashboardRef.selectedDemoIndex === demoIndex;
41912
41987
  return x`
41913
- <div
41914
- class="demo-child ${isThisDemoSelected ? "selected" : ""}"
41915
- @click=${async () => {
41988
+ <div
41989
+ class="demo-child ${isThisDemoSelected ? "selected" : ""}"
41990
+ @click=${async () => {
41916
41991
  await dist_ts_exports25.DomTools.setupDomTools();
41917
- this.selectItem("element", elementName, item, demoIndex);
41992
+ this.selectItem("element", elementName, item, demoIndex, section);
41918
41993
  }}
41919
- >
41920
- <i class="material-symbols-outlined">play_circle</i>
41921
- <div class="text">demo${demoIndex + 1}</div>
41922
- </div>
41923
- `;
41994
+ >
41995
+ <i class="material-symbols-outlined">play_circle</i>
41996
+ <div class="text">demo${demoIndex + 1}</div>
41997
+ </div>
41998
+ `;
41924
41999
  })}
41925
- </div>
41926
- ` : null}
41927
- `;
42000
+ </div>
42001
+ ` : null}
42002
+ `;
41928
42003
  } else {
41929
42004
  return x`
41930
- <div
41931
- class="selectOption ${isSelected ? "selected" : null}"
41932
- @click=${async () => {
42005
+ <div
42006
+ class="selectOption ${isSelected ? "selected" : ""}"
42007
+ @click=${async () => {
41933
42008
  await dist_ts_exports25.DomTools.setupDomTools();
41934
- this.selectItem("element", elementName, item, 0);
42009
+ this.selectItem("element", elementName, item, 0, section);
41935
42010
  }}
41936
- >
41937
- <i class="material-symbols-outlined">featured_video</i>
41938
- <div class="text">${elementName}</div>
41939
- </div>
41940
- `;
42011
+ >
42012
+ <i class="material-symbols-outlined">featured_video</i>
42013
+ <div class="text">${elementName}</div>
42014
+ </div>
42015
+ `;
41941
42016
  }
41942
42017
  });
41943
- })()}
41944
- </div>
41945
- `;
42018
+ }
42019
+ }
42020
+ toggleSectionCollapsed(sectionName) {
42021
+ const newSet = new Set(this.collapsedSections);
42022
+ if (newSet.has(sectionName)) {
42023
+ newSet.delete(sectionName);
42024
+ } else {
42025
+ newSet.add(sectionName);
42026
+ }
42027
+ this.collapsedSections = newSet;
41946
42028
  }
41947
42029
  toggleExpanded(elementName) {
41948
42030
  const newSet = new Set(this.expandedElements);
@@ -41953,14 +42035,40 @@ var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ att
41953
42035
  }
41954
42036
  this.expandedElements = newSet;
41955
42037
  }
41956
- selectItem(typeArg, itemNameArg, itemArg, demoIndex = 0) {
42038
+ updated(changedProperties) {
42039
+ super.updated(changedProperties);
42040
+ if (changedProperties.has("selectedItem") && this.selectedItem) {
42041
+ for (const section of this.dashboardRef.sections) {
42042
+ if (section.type !== "elements") continue;
42043
+ const entries = getSectionItems(section);
42044
+ const found = entries.find(([_3, item]) => item === this.selectedItem);
42045
+ if (found) {
42046
+ const [elementName, item] = found;
42047
+ const anonItem = item;
42048
+ if (anonItem.demo && hasMultipleDemos(anonItem.demo)) {
42049
+ if (!this.expandedElements.has(elementName)) {
42050
+ const newSet = new Set(this.expandedElements);
42051
+ newSet.add(elementName);
42052
+ this.expandedElements = newSet;
42053
+ }
42054
+ }
42055
+ break;
42056
+ }
42057
+ }
42058
+ }
42059
+ }
42060
+ selectItem(typeArg, itemNameArg, itemArg, demoIndex = 0, section) {
41957
42061
  console.log("selected item");
41958
42062
  console.log(itemNameArg);
41959
42063
  console.log(itemArg);
41960
42064
  console.log("demo index:", demoIndex);
42065
+ console.log("section:", section?.name);
41961
42066
  this.selectedItem = itemArg;
41962
42067
  this.selectedType = typeArg;
41963
42068
  this.dashboardRef.selectedDemoIndex = demoIndex;
42069
+ if (section) {
42070
+ this.dashboardRef.selectedSection = section;
42071
+ }
41964
42072
  this.dispatchEvent(
41965
42073
  new CustomEvent("selectedType", {
41966
42074
  detail: typeArg
@@ -41986,11 +42094,13 @@ _selectedType = new WeakMap();
41986
42094
  _dashboardRef = new WeakMap();
41987
42095
  _isNative2 = new WeakMap();
41988
42096
  _expandedElements = new WeakMap();
42097
+ _collapsedSections = new WeakMap();
41989
42098
  __decorateElement(_init2, 4, "selectedItem", _selectedItem_dec, WccSidebar, _selectedItem);
41990
42099
  __decorateElement(_init2, 4, "selectedType", _selectedType_dec, WccSidebar, _selectedType);
41991
42100
  __decorateElement(_init2, 4, "dashboardRef", _dashboardRef_dec, WccSidebar, _dashboardRef);
41992
42101
  __decorateElement(_init2, 4, "isNative", _isNative_dec2, WccSidebar, _isNative2);
41993
42102
  __decorateElement(_init2, 4, "expandedElements", _expandedElements_dec, WccSidebar, _expandedElements);
42103
+ __decorateElement(_init2, 4, "collapsedSections", _collapsedSections_dec, WccSidebar, _collapsedSections);
41994
42104
  WccSidebar = __decorateElement(_init2, 0, "WccSidebar", _WccSidebar_decorators, WccSidebar);
41995
42105
  __runInitializers(_init2, 1, WccSidebar);
41996
42106
 
@@ -44302,19 +44412,29 @@ WccProperties = __decorateElement(_init5, 0, "WccProperties", _WccProperties_dec
44302
44412
  __runInitializers(_init5, 1, WccProperties);
44303
44413
 
44304
44414
  // ts_web/elements/wcc-dashboard.ts
44305
- var _wccFrame_dec, _warning_dec2, _elements_dec, _pages_dec, _selectedTheme_dec2, _selectedViewport_dec2, _selectedDemoIndex_dec, _selectedItem_dec3, _selectedItemName_dec, _selectedType_dec2, _a6, _WccDashboard_decorators, _init6, _selectedType2, _selectedItemName, _selectedItem3, _selectedDemoIndex, _selectedViewport2, _selectedTheme2, _pages, _elements, _warning2, _wccFrame;
44415
+ var _wccFrame_dec, _warning_dec2, _selectedTheme_dec2, _selectedViewport_dec2, _selectedDemoIndex_dec, _selectedItem_dec3, _selectedItemName_dec, _selectedType_dec2, _selectedSection_dec, _sections_dec, _a6, _WccDashboard_decorators, _init6, _sections, _selectedSection, _selectedType2, _selectedItemName, _selectedItem3, _selectedDemoIndex, _selectedViewport2, _selectedTheme2, _warning2, _wccFrame;
44416
+ var getSectionItems = (section) => {
44417
+ let entries = Object.entries(section.items);
44418
+ if (section.filter) {
44419
+ entries = entries.filter(([name, item]) => section.filter(name, item));
44420
+ }
44421
+ if (section.sort) {
44422
+ entries.sort(section.sort);
44423
+ }
44424
+ return entries;
44425
+ };
44306
44426
  _WccDashboard_decorators = [t4("wcc-dashboard")];
44307
- var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()], _selectedItemName_dec = [n5()], _selectedItem_dec3 = [n5()], _selectedDemoIndex_dec = [n5({ type: Number })], _selectedViewport_dec2 = [n5()], _selectedTheme_dec2 = [n5()], _pages_dec = [n5()], _elements_dec = [n5()], _warning_dec2 = [n5()], _wccFrame_dec = [r7("wcc-frame")], _a6) {
44308
- constructor(elementsArg, pagesArg) {
44427
+ var WccDashboard2 = class extends (_a6 = DeesElement, _sections_dec = [n5()], _selectedSection_dec = [n5()], _selectedType_dec2 = [n5()], _selectedItemName_dec = [n5()], _selectedItem_dec3 = [n5()], _selectedDemoIndex_dec = [n5({ type: Number })], _selectedViewport_dec2 = [n5()], _selectedTheme_dec2 = [n5()], _warning_dec2 = [n5()], _wccFrame_dec = [r7("wcc-frame")], _a6) {
44428
+ constructor(config2) {
44309
44429
  super();
44310
- __privateAdd(this, _selectedType2, __runInitializers(_init6, 8, this)), __runInitializers(_init6, 11, this);
44311
- __privateAdd(this, _selectedItemName, __runInitializers(_init6, 12, this)), __runInitializers(_init6, 15, this);
44312
- __privateAdd(this, _selectedItem3, __runInitializers(_init6, 16, this)), __runInitializers(_init6, 19, this);
44313
- __privateAdd(this, _selectedDemoIndex, __runInitializers(_init6, 20, this, 0)), __runInitializers(_init6, 23, this);
44314
- __privateAdd(this, _selectedViewport2, __runInitializers(_init6, 24, this, "desktop")), __runInitializers(_init6, 27, this);
44315
- __privateAdd(this, _selectedTheme2, __runInitializers(_init6, 28, this, "dark")), __runInitializers(_init6, 31, this);
44316
- __privateAdd(this, _pages, __runInitializers(_init6, 32, this, {})), __runInitializers(_init6, 35, this);
44317
- __privateAdd(this, _elements, __runInitializers(_init6, 36, this, {})), __runInitializers(_init6, 39, this);
44430
+ __privateAdd(this, _sections, __runInitializers(_init6, 8, this, [])), __runInitializers(_init6, 11, this);
44431
+ __privateAdd(this, _selectedSection, __runInitializers(_init6, 12, this, null)), __runInitializers(_init6, 15, this);
44432
+ __privateAdd(this, _selectedType2, __runInitializers(_init6, 16, this)), __runInitializers(_init6, 19, this);
44433
+ __privateAdd(this, _selectedItemName, __runInitializers(_init6, 20, this)), __runInitializers(_init6, 23, this);
44434
+ __privateAdd(this, _selectedItem3, __runInitializers(_init6, 24, this)), __runInitializers(_init6, 27, this);
44435
+ __privateAdd(this, _selectedDemoIndex, __runInitializers(_init6, 28, this, 0)), __runInitializers(_init6, 31, this);
44436
+ __privateAdd(this, _selectedViewport2, __runInitializers(_init6, 32, this, "desktop")), __runInitializers(_init6, 35, this);
44437
+ __privateAdd(this, _selectedTheme2, __runInitializers(_init6, 36, this, "dark")), __runInitializers(_init6, 39, this);
44318
44438
  __privateAdd(this, _warning2, __runInitializers(_init6, 40, this, null)), __runInitializers(_init6, 43, this);
44319
44439
  __publicField(this, "frameScrollY", 0);
44320
44440
  __publicField(this, "sidebarScrollY", 0);
@@ -44322,19 +44442,34 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44322
44442
  __privateAdd(this, _wccFrame, __runInitializers(_init6, 44, this)), __runInitializers(_init6, 47, this);
44323
44443
  __publicField(this, "scrollUpdateTimeout");
44324
44444
  __publicField(this, "scrollListenersAttached", false);
44325
- if (elementsArg) {
44326
- this.elements = elementsArg;
44327
- console.log("got elements:");
44328
- console.log(this.elements);
44329
- }
44330
- if (pagesArg) {
44331
- this.pages = pagesArg;
44445
+ if (config2 && config2.sections) {
44446
+ this.sections = config2.sections;
44447
+ console.log("got sections:", this.sections.map((s8) => s8.name));
44332
44448
  }
44333
44449
  }
44334
44450
  // Derived from selectedViewport - no need for separate property
44335
44451
  get isNative() {
44336
44452
  return this.selectedViewport === "native";
44337
44453
  }
44454
+ /**
44455
+ * Find an item by name across all sections, returns the item and its section
44456
+ */
44457
+ findItemByName(name) {
44458
+ for (const section of this.sections) {
44459
+ const entries = getSectionItems(section);
44460
+ const found = entries.find(([itemName]) => itemName === name);
44461
+ if (found) {
44462
+ return { item: found[1], section };
44463
+ }
44464
+ }
44465
+ return null;
44466
+ }
44467
+ /**
44468
+ * Find a section by name (URL-decoded)
44469
+ */
44470
+ findSectionByName(name) {
44471
+ return this.sections.find((s8) => s8.name === name) || null;
44472
+ }
44338
44473
  render() {
44339
44474
  return x`
44340
44475
  <style>
@@ -44415,17 +44550,31 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44415
44550
  this.setupScrollListeners();
44416
44551
  }, 500);
44417
44552
  this.domtools.router.on(
44418
- "/wcctools-route/:itemType/:itemName/:demoIndex/:viewport/:theme",
44553
+ "/wcctools-route/:sectionName/:itemName/:demoIndex/:viewport/:theme",
44419
44554
  async (routeInfo) => {
44420
- this.selectedType = routeInfo.params.itemType;
44555
+ const sectionName = decodeURIComponent(routeInfo.params.sectionName);
44556
+ this.selectedSection = this.findSectionByName(sectionName);
44421
44557
  this.selectedItemName = routeInfo.params.itemName;
44422
44558
  this.selectedDemoIndex = parseInt(routeInfo.params.demoIndex) || 0;
44423
44559
  this.selectedViewport = routeInfo.params.viewport;
44424
44560
  this.selectedTheme = routeInfo.params.theme;
44425
- if (routeInfo.params.itemType === "element") {
44426
- this.selectedItem = this.elements[routeInfo.params.itemName];
44427
- } else if (routeInfo.params.itemType === "page") {
44428
- this.selectedItem = this.pages[routeInfo.params.itemName];
44561
+ if (this.selectedSection) {
44562
+ const entries = getSectionItems(this.selectedSection);
44563
+ const found = entries.find(([name]) => name === routeInfo.params.itemName);
44564
+ if (found) {
44565
+ this.selectedItem = found[1];
44566
+ this.selectedType = this.selectedSection.type === "elements" ? "element" : "page";
44567
+ }
44568
+ } else {
44569
+ const legacyType = routeInfo.params.sectionName;
44570
+ if (legacyType === "element" || legacyType === "page") {
44571
+ this.selectedType = legacyType;
44572
+ const result = this.findItemByName(routeInfo.params.itemName);
44573
+ if (result) {
44574
+ this.selectedItem = result.item;
44575
+ this.selectedSection = result.section;
44576
+ }
44577
+ }
44429
44578
  }
44430
44579
  if (routeInfo.queryParams) {
44431
44580
  const frameScrollY = routeInfo.queryParams.frameScrollY;
@@ -44445,17 +44594,31 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44445
44594
  }
44446
44595
  );
44447
44596
  this.domtools.router.on(
44448
- "/wcctools-route/:itemType/:itemName/:viewport/:theme",
44597
+ "/wcctools-route/:sectionName/:itemName/:viewport/:theme",
44449
44598
  async (routeInfo) => {
44450
- this.selectedType = routeInfo.params.itemType;
44599
+ const sectionName = decodeURIComponent(routeInfo.params.sectionName);
44600
+ this.selectedSection = this.findSectionByName(sectionName);
44451
44601
  this.selectedItemName = routeInfo.params.itemName;
44452
44602
  this.selectedDemoIndex = 0;
44453
44603
  this.selectedViewport = routeInfo.params.viewport;
44454
44604
  this.selectedTheme = routeInfo.params.theme;
44455
- if (routeInfo.params.itemType === "element") {
44456
- this.selectedItem = this.elements[routeInfo.params.itemName];
44457
- } else if (routeInfo.params.itemType === "page") {
44458
- this.selectedItem = this.pages[routeInfo.params.itemName];
44605
+ if (this.selectedSection) {
44606
+ const entries = getSectionItems(this.selectedSection);
44607
+ const found = entries.find(([name]) => name === routeInfo.params.itemName);
44608
+ if (found) {
44609
+ this.selectedItem = found[1];
44610
+ this.selectedType = this.selectedSection.type === "elements" ? "element" : "page";
44611
+ }
44612
+ } else {
44613
+ const legacyType = routeInfo.params.sectionName;
44614
+ if (legacyType === "element" || legacyType === "page") {
44615
+ this.selectedType = legacyType;
44616
+ const result = this.findItemByName(routeInfo.params.itemName);
44617
+ if (result) {
44618
+ this.selectedItem = result.item;
44619
+ this.selectedSection = result.section;
44620
+ }
44621
+ }
44459
44622
  }
44460
44623
  if (routeInfo.queryParams) {
44461
44624
  const frameScrollY = routeInfo.queryParams.frameScrollY;
@@ -44524,7 +44687,8 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44524
44687
  }
44525
44688
  }
44526
44689
  buildUrl() {
44527
- const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedDemoIndex}/${this.selectedViewport}/${this.selectedTheme}`;
44690
+ const sectionName = this.selectedSection ? encodeURIComponent(this.selectedSection.name) : this.selectedType;
44691
+ const baseUrl = `/wcctools-route/${sectionName}/${this.selectedItemName}/${this.selectedDemoIndex}/${this.selectedViewport}/${this.selectedTheme}`;
44528
44692
  const queryParams = new URLSearchParams();
44529
44693
  if (this.frameScrollY > 0) {
44530
44694
  queryParams.set("frameScrollY", this.frameScrollY.toString());
@@ -44563,7 +44727,8 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44563
44727
  }, 300);
44564
44728
  }
44565
44729
  updateUrlWithScrollState() {
44566
- const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedDemoIndex}/${this.selectedViewport}/${this.selectedTheme}`;
44730
+ const sectionName = this.selectedSection ? encodeURIComponent(this.selectedSection.name) : this.selectedType;
44731
+ const baseUrl = `/wcctools-route/${sectionName}/${this.selectedItemName}/${this.selectedDemoIndex}/${this.selectedViewport}/${this.selectedTheme}`;
44567
44732
  const queryParams = new URLSearchParams();
44568
44733
  if (this.frameScrollY > 0) {
44569
44734
  queryParams.set("frameScrollY", this.frameScrollY.toString());
@@ -44591,36 +44756,63 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44591
44756
  }
44592
44757
  };
44593
44758
  _init6 = __decoratorStart(_a6);
44759
+ _sections = new WeakMap();
44760
+ _selectedSection = new WeakMap();
44594
44761
  _selectedType2 = new WeakMap();
44595
44762
  _selectedItemName = new WeakMap();
44596
44763
  _selectedItem3 = new WeakMap();
44597
44764
  _selectedDemoIndex = new WeakMap();
44598
44765
  _selectedViewport2 = new WeakMap();
44599
44766
  _selectedTheme2 = new WeakMap();
44600
- _pages = new WeakMap();
44601
- _elements = new WeakMap();
44602
44767
  _warning2 = new WeakMap();
44603
44768
  _wccFrame = new WeakMap();
44769
+ __decorateElement(_init6, 4, "sections", _sections_dec, WccDashboard2, _sections);
44770
+ __decorateElement(_init6, 4, "selectedSection", _selectedSection_dec, WccDashboard2, _selectedSection);
44604
44771
  __decorateElement(_init6, 4, "selectedType", _selectedType_dec2, WccDashboard2, _selectedType2);
44605
44772
  __decorateElement(_init6, 4, "selectedItemName", _selectedItemName_dec, WccDashboard2, _selectedItemName);
44606
44773
  __decorateElement(_init6, 4, "selectedItem", _selectedItem_dec3, WccDashboard2, _selectedItem3);
44607
44774
  __decorateElement(_init6, 4, "selectedDemoIndex", _selectedDemoIndex_dec, WccDashboard2, _selectedDemoIndex);
44608
44775
  __decorateElement(_init6, 4, "selectedViewport", _selectedViewport_dec2, WccDashboard2, _selectedViewport2);
44609
44776
  __decorateElement(_init6, 4, "selectedTheme", _selectedTheme_dec2, WccDashboard2, _selectedTheme2);
44610
- __decorateElement(_init6, 4, "pages", _pages_dec, WccDashboard2, _pages);
44611
- __decorateElement(_init6, 4, "elements", _elements_dec, WccDashboard2, _elements);
44612
44777
  __decorateElement(_init6, 4, "warning", _warning_dec2, WccDashboard2, _warning2);
44613
44778
  __decorateElement(_init6, 4, "wccFrame", _wccFrame_dec, WccDashboard2, _wccFrame);
44614
44779
  WccDashboard2 = __decorateElement(_init6, 0, "WccDashboard", _WccDashboard_decorators, WccDashboard2);
44615
44780
  __runInitializers(_init6, 1, WccDashboard2);
44616
44781
 
44617
44782
  // ts_web/index.ts
44618
- var setupWccTools = (elementsArg, pagesArg) => {
44783
+ var convertLegacyToConfig = (elementsArg, pagesArg) => {
44784
+ const sections = [];
44785
+ if (pagesArg && Object.keys(pagesArg).length > 0) {
44786
+ sections.push({
44787
+ name: "Pages",
44788
+ type: "pages",
44789
+ items: pagesArg
44790
+ });
44791
+ }
44792
+ if (elementsArg && Object.keys(elementsArg).length > 0) {
44793
+ sections.push({
44794
+ name: "Elements",
44795
+ type: "elements",
44796
+ items: elementsArg
44797
+ });
44798
+ }
44799
+ return { sections };
44800
+ };
44801
+ var isWccConfig = (arg) => {
44802
+ return arg && typeof arg === "object" && "sections" in arg && Array.isArray(arg.sections);
44803
+ };
44804
+ var setupWccTools = (configOrElements, pagesArg) => {
44805
+ let config2;
44806
+ if (isWccConfig(configOrElements)) {
44807
+ config2 = configOrElements;
44808
+ } else {
44809
+ config2 = convertLegacyToConfig(configOrElements, pagesArg);
44810
+ }
44619
44811
  let hasRun = false;
44620
44812
  const runWccToolsSetup = async () => {
44621
44813
  if (document.readyState === "complete" && !hasRun) {
44622
44814
  hasRun = true;
44623
- const wccTools = new WccDashboard2(elementsArg, pagesArg);
44815
+ const wccTools = new WccDashboard2(config2);
44624
44816
  document.querySelector("body").append(wccTools);
44625
44817
  }
44626
44818
  };