@design.estate/dees-wcctools 3.2.0 → 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);
@@ -41956,29 +42038,37 @@ var WccSidebar = class extends (_a2 = DeesElement, _selectedItem_dec = [n5({ att
41956
42038
  updated(changedProperties) {
41957
42039
  super.updated(changedProperties);
41958
42040
  if (changedProperties.has("selectedItem") && this.selectedItem) {
41959
- const elementName = Object.keys(this.dashboardRef.elements).find(
41960
- (name) => this.dashboardRef.elements[name] === this.selectedItem
41961
- );
41962
- if (elementName) {
41963
- const item = this.dashboardRef.elements[elementName];
41964
- if (item.demo && hasMultipleDemos(item.demo)) {
41965
- if (!this.expandedElements.has(elementName)) {
41966
- const newSet = new Set(this.expandedElements);
41967
- newSet.add(elementName);
41968
- this.expandedElements = newSet;
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
+ }
41969
42054
  }
42055
+ break;
41970
42056
  }
41971
42057
  }
41972
42058
  }
41973
42059
  }
41974
- selectItem(typeArg, itemNameArg, itemArg, demoIndex = 0) {
42060
+ selectItem(typeArg, itemNameArg, itemArg, demoIndex = 0, section) {
41975
42061
  console.log("selected item");
41976
42062
  console.log(itemNameArg);
41977
42063
  console.log(itemArg);
41978
42064
  console.log("demo index:", demoIndex);
42065
+ console.log("section:", section?.name);
41979
42066
  this.selectedItem = itemArg;
41980
42067
  this.selectedType = typeArg;
41981
42068
  this.dashboardRef.selectedDemoIndex = demoIndex;
42069
+ if (section) {
42070
+ this.dashboardRef.selectedSection = section;
42071
+ }
41982
42072
  this.dispatchEvent(
41983
42073
  new CustomEvent("selectedType", {
41984
42074
  detail: typeArg
@@ -42004,11 +42094,13 @@ _selectedType = new WeakMap();
42004
42094
  _dashboardRef = new WeakMap();
42005
42095
  _isNative2 = new WeakMap();
42006
42096
  _expandedElements = new WeakMap();
42097
+ _collapsedSections = new WeakMap();
42007
42098
  __decorateElement(_init2, 4, "selectedItem", _selectedItem_dec, WccSidebar, _selectedItem);
42008
42099
  __decorateElement(_init2, 4, "selectedType", _selectedType_dec, WccSidebar, _selectedType);
42009
42100
  __decorateElement(_init2, 4, "dashboardRef", _dashboardRef_dec, WccSidebar, _dashboardRef);
42010
42101
  __decorateElement(_init2, 4, "isNative", _isNative_dec2, WccSidebar, _isNative2);
42011
42102
  __decorateElement(_init2, 4, "expandedElements", _expandedElements_dec, WccSidebar, _expandedElements);
42103
+ __decorateElement(_init2, 4, "collapsedSections", _collapsedSections_dec, WccSidebar, _collapsedSections);
42012
42104
  WccSidebar = __decorateElement(_init2, 0, "WccSidebar", _WccSidebar_decorators, WccSidebar);
42013
42105
  __runInitializers(_init2, 1, WccSidebar);
42014
42106
 
@@ -44320,19 +44412,29 @@ WccProperties = __decorateElement(_init5, 0, "WccProperties", _WccProperties_dec
44320
44412
  __runInitializers(_init5, 1, WccProperties);
44321
44413
 
44322
44414
  // ts_web/elements/wcc-dashboard.ts
44323
- 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
+ };
44324
44426
  _WccDashboard_decorators = [t4("wcc-dashboard")];
44325
- 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) {
44326
- 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) {
44327
44429
  super();
44328
- __privateAdd(this, _selectedType2, __runInitializers(_init6, 8, this)), __runInitializers(_init6, 11, this);
44329
- __privateAdd(this, _selectedItemName, __runInitializers(_init6, 12, this)), __runInitializers(_init6, 15, this);
44330
- __privateAdd(this, _selectedItem3, __runInitializers(_init6, 16, this)), __runInitializers(_init6, 19, this);
44331
- __privateAdd(this, _selectedDemoIndex, __runInitializers(_init6, 20, this, 0)), __runInitializers(_init6, 23, this);
44332
- __privateAdd(this, _selectedViewport2, __runInitializers(_init6, 24, this, "desktop")), __runInitializers(_init6, 27, this);
44333
- __privateAdd(this, _selectedTheme2, __runInitializers(_init6, 28, this, "dark")), __runInitializers(_init6, 31, this);
44334
- __privateAdd(this, _pages, __runInitializers(_init6, 32, this, {})), __runInitializers(_init6, 35, this);
44335
- __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);
44336
44438
  __privateAdd(this, _warning2, __runInitializers(_init6, 40, this, null)), __runInitializers(_init6, 43, this);
44337
44439
  __publicField(this, "frameScrollY", 0);
44338
44440
  __publicField(this, "sidebarScrollY", 0);
@@ -44340,19 +44442,34 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44340
44442
  __privateAdd(this, _wccFrame, __runInitializers(_init6, 44, this)), __runInitializers(_init6, 47, this);
44341
44443
  __publicField(this, "scrollUpdateTimeout");
44342
44444
  __publicField(this, "scrollListenersAttached", false);
44343
- if (elementsArg) {
44344
- this.elements = elementsArg;
44345
- console.log("got elements:");
44346
- console.log(this.elements);
44347
- }
44348
- if (pagesArg) {
44349
- this.pages = pagesArg;
44445
+ if (config2 && config2.sections) {
44446
+ this.sections = config2.sections;
44447
+ console.log("got sections:", this.sections.map((s8) => s8.name));
44350
44448
  }
44351
44449
  }
44352
44450
  // Derived from selectedViewport - no need for separate property
44353
44451
  get isNative() {
44354
44452
  return this.selectedViewport === "native";
44355
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
+ }
44356
44473
  render() {
44357
44474
  return x`
44358
44475
  <style>
@@ -44433,17 +44550,31 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44433
44550
  this.setupScrollListeners();
44434
44551
  }, 500);
44435
44552
  this.domtools.router.on(
44436
- "/wcctools-route/:itemType/:itemName/:demoIndex/:viewport/:theme",
44553
+ "/wcctools-route/:sectionName/:itemName/:demoIndex/:viewport/:theme",
44437
44554
  async (routeInfo) => {
44438
- this.selectedType = routeInfo.params.itemType;
44555
+ const sectionName = decodeURIComponent(routeInfo.params.sectionName);
44556
+ this.selectedSection = this.findSectionByName(sectionName);
44439
44557
  this.selectedItemName = routeInfo.params.itemName;
44440
44558
  this.selectedDemoIndex = parseInt(routeInfo.params.demoIndex) || 0;
44441
44559
  this.selectedViewport = routeInfo.params.viewport;
44442
44560
  this.selectedTheme = routeInfo.params.theme;
44443
- if (routeInfo.params.itemType === "element") {
44444
- this.selectedItem = this.elements[routeInfo.params.itemName];
44445
- } else if (routeInfo.params.itemType === "page") {
44446
- 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
+ }
44447
44578
  }
44448
44579
  if (routeInfo.queryParams) {
44449
44580
  const frameScrollY = routeInfo.queryParams.frameScrollY;
@@ -44463,17 +44594,31 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44463
44594
  }
44464
44595
  );
44465
44596
  this.domtools.router.on(
44466
- "/wcctools-route/:itemType/:itemName/:viewport/:theme",
44597
+ "/wcctools-route/:sectionName/:itemName/:viewport/:theme",
44467
44598
  async (routeInfo) => {
44468
- this.selectedType = routeInfo.params.itemType;
44599
+ const sectionName = decodeURIComponent(routeInfo.params.sectionName);
44600
+ this.selectedSection = this.findSectionByName(sectionName);
44469
44601
  this.selectedItemName = routeInfo.params.itemName;
44470
44602
  this.selectedDemoIndex = 0;
44471
44603
  this.selectedViewport = routeInfo.params.viewport;
44472
44604
  this.selectedTheme = routeInfo.params.theme;
44473
- if (routeInfo.params.itemType === "element") {
44474
- this.selectedItem = this.elements[routeInfo.params.itemName];
44475
- } else if (routeInfo.params.itemType === "page") {
44476
- 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
+ }
44477
44622
  }
44478
44623
  if (routeInfo.queryParams) {
44479
44624
  const frameScrollY = routeInfo.queryParams.frameScrollY;
@@ -44542,7 +44687,8 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44542
44687
  }
44543
44688
  }
44544
44689
  buildUrl() {
44545
- 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}`;
44546
44692
  const queryParams = new URLSearchParams();
44547
44693
  if (this.frameScrollY > 0) {
44548
44694
  queryParams.set("frameScrollY", this.frameScrollY.toString());
@@ -44581,7 +44727,8 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44581
44727
  }, 300);
44582
44728
  }
44583
44729
  updateUrlWithScrollState() {
44584
- 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}`;
44585
44732
  const queryParams = new URLSearchParams();
44586
44733
  if (this.frameScrollY > 0) {
44587
44734
  queryParams.set("frameScrollY", this.frameScrollY.toString());
@@ -44609,36 +44756,63 @@ var WccDashboard2 = class extends (_a6 = DeesElement, _selectedType_dec2 = [n5()
44609
44756
  }
44610
44757
  };
44611
44758
  _init6 = __decoratorStart(_a6);
44759
+ _sections = new WeakMap();
44760
+ _selectedSection = new WeakMap();
44612
44761
  _selectedType2 = new WeakMap();
44613
44762
  _selectedItemName = new WeakMap();
44614
44763
  _selectedItem3 = new WeakMap();
44615
44764
  _selectedDemoIndex = new WeakMap();
44616
44765
  _selectedViewport2 = new WeakMap();
44617
44766
  _selectedTheme2 = new WeakMap();
44618
- _pages = new WeakMap();
44619
- _elements = new WeakMap();
44620
44767
  _warning2 = new WeakMap();
44621
44768
  _wccFrame = new WeakMap();
44769
+ __decorateElement(_init6, 4, "sections", _sections_dec, WccDashboard2, _sections);
44770
+ __decorateElement(_init6, 4, "selectedSection", _selectedSection_dec, WccDashboard2, _selectedSection);
44622
44771
  __decorateElement(_init6, 4, "selectedType", _selectedType_dec2, WccDashboard2, _selectedType2);
44623
44772
  __decorateElement(_init6, 4, "selectedItemName", _selectedItemName_dec, WccDashboard2, _selectedItemName);
44624
44773
  __decorateElement(_init6, 4, "selectedItem", _selectedItem_dec3, WccDashboard2, _selectedItem3);
44625
44774
  __decorateElement(_init6, 4, "selectedDemoIndex", _selectedDemoIndex_dec, WccDashboard2, _selectedDemoIndex);
44626
44775
  __decorateElement(_init6, 4, "selectedViewport", _selectedViewport_dec2, WccDashboard2, _selectedViewport2);
44627
44776
  __decorateElement(_init6, 4, "selectedTheme", _selectedTheme_dec2, WccDashboard2, _selectedTheme2);
44628
- __decorateElement(_init6, 4, "pages", _pages_dec, WccDashboard2, _pages);
44629
- __decorateElement(_init6, 4, "elements", _elements_dec, WccDashboard2, _elements);
44630
44777
  __decorateElement(_init6, 4, "warning", _warning_dec2, WccDashboard2, _warning2);
44631
44778
  __decorateElement(_init6, 4, "wccFrame", _wccFrame_dec, WccDashboard2, _wccFrame);
44632
44779
  WccDashboard2 = __decorateElement(_init6, 0, "WccDashboard", _WccDashboard_decorators, WccDashboard2);
44633
44780
  __runInitializers(_init6, 1, WccDashboard2);
44634
44781
 
44635
44782
  // ts_web/index.ts
44636
- 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
+ }
44637
44811
  let hasRun = false;
44638
44812
  const runWccToolsSetup = async () => {
44639
44813
  if (document.readyState === "complete" && !hasRun) {
44640
44814
  hasRun = true;
44641
- const wccTools = new WccDashboard2(elementsArg, pagesArg);
44815
+ const wccTools = new WccDashboard2(config2);
44642
44816
  document.querySelector("body").append(wccTools);
44643
44817
  }
44644
44818
  };