@design.estate/wcctools 5.1.0 → 6.1.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.
Files changed (262) hide show
  1. package/.smartconfig.json +7 -3
  2. package/changelog.md +28 -0
  3. package/cli.js +3 -0
  4. package/dist_shell/bundle.js +2970 -0
  5. package/dist_shell/bundle.js.map +1 -0
  6. package/dist_shell/bundle.js.third-party-notices.json +1722 -0
  7. package/dist_shell/bundle.js.third-party-notices.txt +4195 -0
  8. package/dist_shell/index.html +21 -0
  9. package/dist_ts/00_commitinfo_data.d.ts +8 -0
  10. package/dist_ts/00_commitinfo_data.js +9 -0
  11. package/dist_ts/classes.devapi.d.ts +11 -0
  12. package/dist_ts/classes.devapi.js +21 -0
  13. package/dist_ts/classes.devserver.d.ts +49 -0
  14. package/dist_ts/classes.devserver.js +142 -0
  15. package/dist_ts/cli.d.ts +6 -0
  16. package/dist_ts/cli.js +51 -0
  17. package/dist_ts/index.d.ts +3 -0
  18. package/dist_ts/index.js +4 -0
  19. package/dist_ts/paths.d.ts +4 -0
  20. package/dist_ts/paths.js +6 -0
  21. package/dist_ts/plugins.d.ts +20 -0
  22. package/dist_ts/plugins.js +27 -0
  23. package/dist_ts/shellcontent.d.ts +9 -0
  24. package/dist_ts/shellcontent.js +42 -0
  25. package/dist_ts/standards/baselines.d.ts +27 -0
  26. package/dist_ts/standards/baselines.js +83 -0
  27. package/dist_ts/standards/checker.d.ts +21 -0
  28. package/dist_ts/standards/checker.js +88 -0
  29. package/dist_ts/standards/classes.gitrepo.d.ts +13 -0
  30. package/dist_ts/standards/classes.gitrepo.js +43 -0
  31. package/dist_ts/standards/classes.sourceedits.d.ts +15 -0
  32. package/dist_ts/standards/classes.sourceedits.js +54 -0
  33. package/dist_ts/standards/classes.standardfixer.d.ts +40 -0
  34. package/dist_ts/standards/classes.standardfixer.js +210 -0
  35. package/dist_ts/standards/classes.standardproject.d.ts +80 -0
  36. package/dist_ts/standards/classes.standardproject.js +195 -0
  37. package/dist_ts/standards/classes.standardtree.d.ts +56 -0
  38. package/dist_ts/standards/classes.standardtree.js +207 -0
  39. package/dist_ts/standards/cli.d.ts +7 -0
  40. package/dist_ts/standards/cli.js +89 -0
  41. package/dist_ts/standards/config.d.ts +33 -0
  42. package/dist_ts/standards/config.js +139 -0
  43. package/dist_ts/standards/errors.d.ts +9 -0
  44. package/dist_ts/standards/errors.js +17 -0
  45. package/dist_ts/standards/helpers.ast.d.ts +56 -0
  46. package/dist_ts/standards/helpers.ast.js +172 -0
  47. package/dist_ts/standards/helpers.paths.d.ts +36 -0
  48. package/dist_ts/standards/helpers.paths.js +86 -0
  49. package/dist_ts/standards/index.d.ts +14 -0
  50. package/dist_ts/standards/index.js +15 -0
  51. package/dist_ts/standards/output.d.ts +7 -0
  52. package/dist_ts/standards/output.js +57 -0
  53. package/dist_ts/standards/ratchet.d.ts +15 -0
  54. package/dist_ts/standards/ratchet.js +45 -0
  55. package/dist_ts/standards/rule.d.ts +50 -0
  56. package/dist_ts/standards/rule.js +9 -0
  57. package/dist_ts/standards/rules/barrel.element-index.d.ts +7 -0
  58. package/dist_ts/standards/rules/barrel.element-index.js +108 -0
  59. package/dist_ts/standards/rules/barrel.no-demo-export.d.ts +3 -0
  60. package/dist_ts/standards/rules/barrel.no-demo-export.js +29 -0
  61. package/dist_ts/standards/rules/demo.fixture-not-exported.d.ts +3 -0
  62. package/dist_ts/standards/rules/demo.fixture-not-exported.js +29 -0
  63. package/dist_ts/standards/rules/demo.groups.d.ts +6 -0
  64. package/dist_ts/standards/rules/demo.groups.js +72 -0
  65. package/dist_ts/standards/rules/demo.required.d.ts +3 -0
  66. package/dist_ts/standards/rules/demo.required.js +48 -0
  67. package/dist_ts/standards/rules/demo.separate-file.d.ts +3 -0
  68. package/dist_ts/standards/rules/demo.separate-file.js +38 -0
  69. package/dist_ts/standards/rules/demo.shape.d.ts +3 -0
  70. package/dist_ts/standards/rules/demo.shape.js +38 -0
  71. package/dist_ts/standards/rules/docs.component-index.d.ts +8 -0
  72. package/dist_ts/standards/rules/docs.component-index.js +84 -0
  73. package/dist_ts/standards/rules/element.exported.d.ts +3 -0
  74. package/dist_ts/standards/rules/element.exported.js +33 -0
  75. package/dist_ts/standards/rules/element.literal-tag.d.ts +3 -0
  76. package/dist_ts/standards/rules/element.literal-tag.js +30 -0
  77. package/dist_ts/standards/rules/element.reachable.d.ts +3 -0
  78. package/dist_ts/standards/rules/element.reachable.js +48 -0
  79. package/dist_ts/standards/rules/element.tag-map.d.ts +3 -0
  80. package/dist_ts/standards/rules/element.tag-map.js +83 -0
  81. package/dist_ts/standards/rules/i18n.literals.d.ts +3 -0
  82. package/dist_ts/standards/rules/i18n.literals.js +52 -0
  83. package/dist_ts/standards/rules/index.d.ts +12 -0
  84. package/dist_ts/standards/rules/index.js +83 -0
  85. package/dist_ts/standards/rules/layout.element-folder.d.ts +3 -0
  86. package/dist_ts/standards/rules/layout.element-folder.js +47 -0
  87. package/dist_ts/standards/rules/layout.entry-file-name.d.ts +3 -0
  88. package/dist_ts/standards/rules/layout.entry-file-name.js +71 -0
  89. package/dist_ts/standards/rules/layout.entry.d.ts +3 -0
  90. package/dist_ts/standards/rules/layout.entry.js +38 -0
  91. package/dist_ts/standards/rules/layout.group-folder.d.ts +3 -0
  92. package/dist_ts/standards/rules/layout.group-folder.js +22 -0
  93. package/dist_ts/standards/rules/layout.shared-00.d.ts +3 -0
  94. package/dist_ts/standards/rules/layout.shared-00.js +36 -0
  95. package/dist_ts/standards/rules/naming.class-matches-tag.d.ts +3 -0
  96. package/dist_ts/standards/rules/naming.class-matches-tag.js +26 -0
  97. package/dist_ts/standards/rules/naming.lowercase-files.d.ts +3 -0
  98. package/dist_ts/standards/rules/naming.lowercase-files.js +26 -0
  99. package/dist_ts/standards/rules/naming.tag-prefix.d.ts +3 -0
  100. package/dist_ts/standards/rules/naming.tag-prefix.js +23 -0
  101. package/dist_ts/standards/rules/props.accessor.d.ts +3 -0
  102. package/dist_ts/standards/rules/props.accessor.js +35 -0
  103. package/dist_ts/standards/rules/props.object-no-attribute.d.ts +3 -0
  104. package/dist_ts/standards/rules/props.object-no-attribute.js +42 -0
  105. package/dist_ts/standards/rules/props.reflect-primitive.d.ts +5 -0
  106. package/dist_ts/standards/rules/props.reflect-primitive.js +41 -0
  107. package/dist_ts/standards/rules/props.typed.d.ts +6 -0
  108. package/dist_ts/standards/rules/props.typed.js +64 -0
  109. package/dist_ts/standards/rules/shared.d.ts +38 -0
  110. package/dist_ts/standards/rules/shared.js +103 -0
  111. package/dist_ts/standards/rules/style.bdtheme.d.ts +5 -0
  112. package/dist_ts/standards/rules/style.bdtheme.js +28 -0
  113. package/dist_ts_interfaces/bridge.d.ts +88 -0
  114. package/dist_ts_interfaces/bridge.js +2 -0
  115. package/dist_ts_interfaces/catalog.d.ts +32 -0
  116. package/dist_ts_interfaces/catalog.js +6 -0
  117. package/dist_ts_interfaces/index.d.ts +4 -0
  118. package/dist_ts_interfaces/index.js +5 -0
  119. package/dist_ts_interfaces/plugins.d.ts +2 -0
  120. package/dist_ts_interfaces/plugins.js +3 -0
  121. package/dist_ts_interfaces/requests.d.ts +15 -0
  122. package/dist_ts_interfaces/requests.js +2 -0
  123. package/dist_ts_interfaces/standard.d.ts +93 -0
  124. package/dist_ts_interfaces/standard.js +6 -0
  125. package/dist_ts_shared/index.d.ts +1 -0
  126. package/dist_ts_shared/index.js +2 -0
  127. package/dist_ts_shared/plugins.d.ts +2 -0
  128. package/dist_ts_shared/plugins.js +3 -0
  129. package/dist_ts_shared/previewroute.d.ts +18 -0
  130. package/dist_ts_shared/previewroute.js +47 -0
  131. package/{dist_ts_web → dist_ts_shell}/elements/wcc-contextmenu.js +1 -1
  132. package/dist_ts_shell/elements/wcc-preview-frame.d.ts +23 -0
  133. package/dist_ts_shell/elements/wcc-preview-frame.js +197 -0
  134. package/dist_ts_shell/elements/wcc-properties.d.ts +49 -0
  135. package/{dist_ts_web → dist_ts_shell}/elements/wcc-properties.js +149 -216
  136. package/{dist_ts_web → dist_ts_shell}/elements/wcc-record-button.js +1 -1
  137. package/{dist_ts_web → dist_ts_shell}/elements/wcc-recording-panel.d.ts +2 -2
  138. package/{dist_ts_web → dist_ts_shell}/elements/wcc-recording-panel.js +12 -16
  139. package/dist_ts_shell/elements/wcc-shell.d.ts +87 -0
  140. package/dist_ts_shell/elements/wcc-shell.js +524 -0
  141. package/{dist_ts_web → dist_ts_shell}/elements/wcc-sidebar.d.ts +12 -10
  142. package/{dist_ts_web → dist_ts_shell}/elements/wcc-sidebar.js +137 -183
  143. package/dist_ts_shell/index.d.ts +4 -0
  144. package/dist_ts_shell/index.js +5 -0
  145. package/dist_ts_shell/plugins.d.ts +4 -0
  146. package/dist_ts_shell/plugins.js +5 -0
  147. package/dist_ts_shell/previewconnection.d.ts +30 -0
  148. package/dist_ts_shell/previewconnection.js +86 -0
  149. package/dist_ts_shell/services/recorder.service.js +353 -0
  150. package/dist_ts_web/00_commitinfo_data.js +2 -2
  151. package/dist_ts_web/catalog.d.ts +45 -0
  152. package/dist_ts_web/catalog.js +153 -0
  153. package/dist_ts_web/elementproperties.d.ts +15 -0
  154. package/dist_ts_web/elementproperties.js +89 -0
  155. package/dist_ts_web/elements/wcc-preview.d.ts +19 -0
  156. package/dist_ts_web/elements/wcc-preview.js +164 -0
  157. package/dist_ts_web/elements/wcc-standalone-notice.d.ts +14 -0
  158. package/dist_ts_web/elements/wcc-standalone-notice.js +110 -0
  159. package/dist_ts_web/elements/wcctools.helpers.d.ts +2 -6
  160. package/dist_ts_web/elements/wcctools.helpers.js +1 -7
  161. package/dist_ts_web/index.d.ts +2 -5
  162. package/dist_ts_web/index.js +38 -17
  163. package/dist_ts_web/previewbridge.d.ts +39 -0
  164. package/dist_ts_web/previewbridge.js +153 -0
  165. package/dist_ts_web/renderedtree.d.ts +5 -0
  166. package/dist_ts_web/renderedtree.js +37 -0
  167. package/dist_ts_web/wcctools.interfaces.d.ts +3 -6
  168. package/dist_ts_web/wcctools.interfaces.js +1 -1
  169. package/dist_ts_web/wcctools.plugins.d.ts +3 -1
  170. package/dist_ts_web/wcctools.plugins.js +4 -2
  171. package/package.json +17 -7
  172. package/readme.md +93 -28
  173. package/ts/00_commitinfo_data.ts +8 -0
  174. package/ts/classes.devapi.ts +25 -0
  175. package/ts/classes.devserver.ts +161 -0
  176. package/ts/cli.ts +53 -0
  177. package/ts/index.ts +3 -0
  178. package/ts/paths.ts +7 -0
  179. package/ts/plugins.ts +37 -0
  180. package/ts/shellcontent.ts +42 -0
  181. package/ts/standards/baselines.ts +100 -0
  182. package/ts/standards/checker.ts +114 -0
  183. package/ts/standards/classes.gitrepo.ts +48 -0
  184. package/ts/standards/classes.sourceedits.ts +58 -0
  185. package/ts/standards/classes.standardfixer.ts +234 -0
  186. package/ts/standards/classes.standardproject.ts +250 -0
  187. package/ts/standards/classes.standardtree.ts +220 -0
  188. package/ts/standards/cli.ts +86 -0
  189. package/ts/standards/config.ts +160 -0
  190. package/ts/standards/errors.ts +18 -0
  191. package/ts/standards/helpers.ast.ts +208 -0
  192. package/ts/standards/helpers.paths.ts +119 -0
  193. package/ts/standards/index.ts +22 -0
  194. package/ts/standards/output.ts +65 -0
  195. package/ts/standards/ratchet.ts +63 -0
  196. package/ts/standards/rule.ts +58 -0
  197. package/ts/standards/rules/barrel.element-index.ts +112 -0
  198. package/ts/standards/rules/barrel.no-demo-export.ts +30 -0
  199. package/ts/standards/rules/demo.fixture-not-exported.ts +30 -0
  200. package/ts/standards/rules/demo.groups.ts +74 -0
  201. package/ts/standards/rules/demo.required.ts +49 -0
  202. package/ts/standards/rules/demo.separate-file.ts +40 -0
  203. package/ts/standards/rules/demo.shape.ts +42 -0
  204. package/ts/standards/rules/docs.component-index.ts +88 -0
  205. package/ts/standards/rules/element.exported.ts +35 -0
  206. package/ts/standards/rules/element.literal-tag.ts +30 -0
  207. package/ts/standards/rules/element.reachable.ts +49 -0
  208. package/ts/standards/rules/element.tag-map.ts +87 -0
  209. package/ts/standards/rules/i18n.literals.ts +58 -0
  210. package/ts/standards/rules/index.ts +87 -0
  211. package/ts/standards/rules/layout.element-folder.ts +49 -0
  212. package/ts/standards/rules/layout.entry-file-name.ts +73 -0
  213. package/ts/standards/rules/layout.entry.ts +40 -0
  214. package/ts/standards/rules/layout.group-folder.ts +23 -0
  215. package/ts/standards/rules/layout.shared-00.ts +37 -0
  216. package/ts/standards/rules/naming.class-matches-tag.ts +27 -0
  217. package/ts/standards/rules/naming.lowercase-files.ts +27 -0
  218. package/ts/standards/rules/naming.tag-prefix.ts +24 -0
  219. package/ts/standards/rules/props.accessor.ts +37 -0
  220. package/ts/standards/rules/props.object-no-attribute.ts +45 -0
  221. package/ts/standards/rules/props.reflect-primitive.ts +44 -0
  222. package/ts/standards/rules/props.typed.ts +70 -0
  223. package/ts/standards/rules/shared.ts +127 -0
  224. package/ts/standards/rules/style.bdtheme.ts +31 -0
  225. package/ts_web/00_commitinfo_data.ts +1 -1
  226. package/ts_web/catalog.ts +194 -0
  227. package/ts_web/elementproperties.ts +96 -0
  228. package/ts_web/elements/wcc-preview.ts +111 -0
  229. package/ts_web/elements/wcc-standalone-notice.ts +65 -0
  230. package/ts_web/elements/wcctools.helpers.ts +2 -10
  231. package/ts_web/index.ts +38 -19
  232. package/ts_web/previewbridge.ts +189 -0
  233. package/ts_web/readme.md +26 -85
  234. package/ts_web/renderedtree.ts +43 -0
  235. package/ts_web/wcctools.interfaces.ts +4 -7
  236. package/ts_web/wcctools.plugins.ts +6 -1
  237. package/dist_bundle/bundle.js +0 -92419
  238. package/dist_bundle/bundle.js.map +0 -1
  239. package/dist_ts_web/elements/wcc-dashboard.d.ts +0 -119
  240. package/dist_ts_web/elements/wcc-dashboard.js +0 -700
  241. package/dist_ts_web/elements/wcc-frame.d.ts +0 -22
  242. package/dist_ts_web/elements/wcc-frame.js +0 -256
  243. package/dist_ts_web/elements/wcc-properties.d.ts +0 -43
  244. package/dist_ts_web/pages/index.d.ts +0 -1
  245. package/dist_ts_web/pages/index.js +0 -2
  246. package/dist_ts_web/services/recorder.service.js +0 -353
  247. package/ts_web/elements/wcc-contextmenu.ts +0 -291
  248. package/ts_web/elements/wcc-dashboard.ts +0 -672
  249. package/ts_web/elements/wcc-frame.ts +0 -189
  250. package/ts_web/elements/wcc-properties.ts +0 -1089
  251. package/ts_web/elements/wcc-record-button.ts +0 -108
  252. package/ts_web/elements/wcc-recording-panel.ts +0 -1010
  253. package/ts_web/elements/wcc-sidebar.ts +0 -1470
  254. package/ts_web/pages/index.ts +0 -1
  255. package/ts_web/services/recorder.service.ts +0 -451
  256. package/ts_web/types/dom-mediacapture-stub/index.d.ts +0 -12
  257. package/ts_web/types/dom-mediacapture-stub/package.json +0 -6
  258. package/ts_web/types/dom-webcodecs-stub/index.d.ts +0 -2
  259. package/ts_web/types/dom-webcodecs-stub/package.json +0 -6
  260. /package/{dist_ts_web → dist_ts_shell}/elements/wcc-contextmenu.d.ts +0 -0
  261. /package/{dist_ts_web → dist_ts_shell}/elements/wcc-record-button.d.ts +0 -0
  262. /package/{dist_ts_web → dist_ts_shell}/services/recorder.service.d.ts +0 -0
@@ -32,10 +32,8 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
32
32
  }
33
33
  return useValue ? value : void 0;
34
34
  };
35
- import * as plugins from '../wcctools.plugins.js';
36
35
  import { DeesElement, property, html, customElement, state } from '@design.estate/dees-element';
37
- import { WccDashboard, getSectionItems, getSectionItemsWithoutDemo } from './wcc-dashboard.js';
38
- import { getDemoCount, getElementDemoGroups, getElementTagName, hasMultipleDemos } from './wcctools.helpers.js';
36
+ import * as plugins from '../plugins.js';
39
37
  import { WccContextmenu } from './wcc-contextmenu.js';
40
38
  const SIDEBAR_MIN_WIDTH = 150;
41
39
  const SIDEBAR_MAX_WIDTH = 400;
@@ -46,15 +44,12 @@ let WccSidebar = (() => {
46
44
  let _classExtraInitializers = [];
47
45
  let _classThis;
48
46
  let _classSuper = DeesElement;
49
- let _selectedItem_decorators;
50
- let _selectedItem_initializers = [];
51
- let _selectedItem_extraInitializers = [];
52
- let _selectedType_decorators;
53
- let _selectedType_initializers = [];
54
- let _selectedType_extraInitializers = [];
55
- let _dashboardRef_decorators;
56
- let _dashboardRef_initializers = [];
57
- let _dashboardRef_extraInitializers = [];
47
+ let _manifest_decorators;
48
+ let _manifest_initializers = [];
49
+ let _manifest_extraInitializers = [];
50
+ let _selection_decorators;
51
+ let _selection_initializers = [];
52
+ let _selection_extraInitializers = [];
58
53
  let _isNative_decorators;
59
54
  let _isNative_initializers = [];
60
55
  let _isNative_extraInitializers = [];
@@ -89,10 +84,9 @@ let WccSidebar = (() => {
89
84
  static { _classThis = this; }
90
85
  static {
91
86
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
92
- _selectedItem_decorators = [property({ attribute: false })];
93
- _selectedType_decorators = [property({ attribute: false })];
94
- _dashboardRef_decorators = [property()];
95
- _isNative_decorators = [property()];
87
+ _manifest_decorators = [property({ attribute: false })];
88
+ _selection_decorators = [property({ attribute: false })];
89
+ _isNative_decorators = [property({ type: Boolean })];
96
90
  _expandedElements_decorators = [state()];
97
91
  _collapsedSections_decorators = [state()];
98
92
  _expandedWithoutDemo_decorators = [state()];
@@ -102,9 +96,8 @@ let WccSidebar = (() => {
102
96
  _isResizing_decorators = [state()];
103
97
  _isHidden_decorators = [state()];
104
98
  _isMenuScrolled_decorators = [state()];
105
- __esDecorate(this, null, _selectedItem_decorators, { kind: "accessor", name: "selectedItem", static: false, private: false, access: { has: obj => "selectedItem" in obj, get: obj => obj.selectedItem, set: (obj, value) => { obj.selectedItem = value; } }, metadata: _metadata }, _selectedItem_initializers, _selectedItem_extraInitializers);
106
- __esDecorate(this, null, _selectedType_decorators, { kind: "accessor", name: "selectedType", static: false, private: false, access: { has: obj => "selectedType" in obj, get: obj => obj.selectedType, set: (obj, value) => { obj.selectedType = value; } }, metadata: _metadata }, _selectedType_initializers, _selectedType_extraInitializers);
107
- __esDecorate(this, null, _dashboardRef_decorators, { kind: "accessor", name: "dashboardRef", static: false, private: false, access: { has: obj => "dashboardRef" in obj, get: obj => obj.dashboardRef, set: (obj, value) => { obj.dashboardRef = value; } }, metadata: _metadata }, _dashboardRef_initializers, _dashboardRef_extraInitializers);
99
+ __esDecorate(this, null, _manifest_decorators, { kind: "accessor", name: "manifest", static: false, private: false, access: { has: obj => "manifest" in obj, get: obj => obj.manifest, set: (obj, value) => { obj.manifest = value; } }, metadata: _metadata }, _manifest_initializers, _manifest_extraInitializers);
100
+ __esDecorate(this, null, _selection_decorators, { kind: "accessor", name: "selection", static: false, private: false, access: { has: obj => "selection" in obj, get: obj => obj.selection, set: (obj, value) => { obj.selection = value; } }, metadata: _metadata }, _selection_initializers, _selection_extraInitializers);
108
101
  __esDecorate(this, null, _isNative_decorators, { kind: "accessor", name: "isNative", static: false, private: false, access: { has: obj => "isNative" in obj, get: obj => obj.isNative, set: (obj, value) => { obj.isNative = value; } }, metadata: _metadata }, _isNative_initializers, _isNative_extraInitializers);
109
102
  __esDecorate(this, null, _expandedElements_decorators, { kind: "accessor", name: "expandedElements", static: false, private: false, access: { has: obj => "expandedElements" in obj, get: obj => obj.expandedElements, set: (obj, value) => { obj.expandedElements = value; } }, metadata: _metadata }, _expandedElements_initializers, _expandedElements_extraInitializers);
110
103
  __esDecorate(this, null, _collapsedSections_decorators, { kind: "accessor", name: "collapsedSections", static: false, private: false, access: { has: obj => "collapsedSections" in obj, get: obj => obj.collapsedSections, set: (obj, value) => { obj.collapsedSections = value; } }, metadata: _metadata }, _collapsedSections_initializers, _collapsedSections_extraInitializers);
@@ -120,16 +113,13 @@ let WccSidebar = (() => {
120
113
  if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
121
114
  __runInitializers(_classThis, _classExtraInitializers);
122
115
  }
123
- #selectedItem_accessor_storage = __runInitializers(this, _selectedItem_initializers, void 0);
124
- get selectedItem() { return this.#selectedItem_accessor_storage; }
125
- set selectedItem(value) { this.#selectedItem_accessor_storage = value; }
126
- #selectedType_accessor_storage = (__runInitializers(this, _selectedItem_extraInitializers), __runInitializers(this, _selectedType_initializers, void 0));
127
- get selectedType() { return this.#selectedType_accessor_storage; }
128
- set selectedType(value) { this.#selectedType_accessor_storage = value; }
129
- #dashboardRef_accessor_storage = (__runInitializers(this, _selectedType_extraInitializers), __runInitializers(this, _dashboardRef_initializers, void 0));
130
- get dashboardRef() { return this.#dashboardRef_accessor_storage; }
131
- set dashboardRef(value) { this.#dashboardRef_accessor_storage = value; }
132
- #isNative_accessor_storage = (__runInitializers(this, _dashboardRef_extraInitializers), __runInitializers(this, _isNative_initializers, false));
116
+ #manifest_accessor_storage = __runInitializers(this, _manifest_initializers, null);
117
+ get manifest() { return this.#manifest_accessor_storage; }
118
+ set manifest(value) { this.#manifest_accessor_storage = value; }
119
+ #selection_accessor_storage = (__runInitializers(this, _manifest_extraInitializers), __runInitializers(this, _selection_initializers, null));
120
+ get selection() { return this.#selection_accessor_storage; }
121
+ set selection(value) { this.#selection_accessor_storage = value; }
122
+ #isNative_accessor_storage = (__runInitializers(this, _selection_extraInitializers), __runInitializers(this, _isNative_initializers, false));
133
123
  get isNative() { return this.#isNative_accessor_storage; }
134
124
  set isNative(value) { this.#isNative_accessor_storage = value; }
135
125
  #expandedElements_accessor_storage = (__runInitializers(this, _isNative_extraInitializers), __runInitializers(this, _expandedElements_initializers, new Set()));
@@ -168,18 +158,21 @@ let WccSidebar = (() => {
168
158
  // Track if menu is scrolled for header shadow
169
159
  get isMenuScrolled() { return this.#isMenuScrolled_accessor_storage; }
170
160
  set isMenuScrolled(value) { this.#isMenuScrolled_accessor_storage = value; }
171
- sectionsInitialized = (__runInitializers(this, _isMenuScrolled_extraInitializers), false);
161
+ /** Section names whose configured initial collapse state was applied. */
162
+ initializedSections = (__runInitializers(this, _isMenuScrolled_extraInitializers), new Set());
172
163
  /** data-key of the tree item that holds the roving tab stop */
173
164
  focusedKey = null;
174
165
  hideTimeout;
175
166
  highlightedGroup = null;
176
167
  groupHighlightTimeout;
168
+ endResize = null;
177
169
  async disconnectedCallback() {
178
170
  const disconnected = super.disconnectedCallback();
179
171
  // A removed sidebar has no frame transition to wait for
180
172
  clearTimeout(this.hideTimeout);
181
173
  this.isHidden = this.isNative;
182
174
  this.endGroupHighlight();
175
+ this.endResize?.();
183
176
  return disconnected;
184
177
  }
185
178
  /**
@@ -587,7 +580,7 @@ let WccSidebar = (() => {
587
580
  background: var(--primary);
588
581
  }
589
582
 
590
- @container wccDashboard (max-width: 600px) {
583
+ @container wccShell (max-width: 600px) {
591
584
  :host {
592
585
  right: 0;
593
586
  bottom: auto;
@@ -760,19 +753,31 @@ let WccSidebar = (() => {
760
753
  return `item:${sectionName}::${groupName ?? ''}::${itemName}`;
761
754
  }
762
755
  /**
763
- * Initialize collapsed sections from section config
756
+ * Apply each section's configured initial collapse state once, also to sections a reload adds
764
757
  */
765
- initCollapsedSections() {
766
- if (this.sectionsInitialized || !this.dashboardRef?.sections)
758
+ initCollapsedSections(sectionsArg) {
759
+ const fresh = sectionsArg.filter((section) => !this.initializedSections.has(section.name));
760
+ if (fresh.length === 0)
767
761
  return;
768
- const collapsed = new Set();
769
- for (const section of this.dashboardRef.sections) {
762
+ const collapsed = new Set(this.collapsedSections);
763
+ for (const section of fresh) {
764
+ this.initializedSections.add(section.name);
770
765
  if (section.collapsed) {
771
766
  collapsed.add(section.name);
772
767
  }
773
768
  }
774
769
  this.collapsedSections = collapsed;
775
- this.sectionsInitialized = true;
770
+ }
771
+ findEntry(sectionName, itemName) {
772
+ const section = this.manifest?.sections.find((sectionArg) => sectionArg.name === sectionName);
773
+ const entry = section?.entries.find((entryArg) => entryArg.name === itemName);
774
+ return section && entry ? { section, entry } : null;
775
+ }
776
+ isSelected(sectionName, itemName, demoIndex) {
777
+ return !!this.selection
778
+ && this.selection.sectionName === sectionName
779
+ && this.selection.itemName === itemName
780
+ && (demoIndex === undefined || this.selection.demoIndex === demoIndex);
776
781
  }
777
782
  // ============ Pinning helpers ============
778
783
  getPinKey(sectionName, itemName) {
@@ -795,11 +800,7 @@ let WccSidebar = (() => {
795
800
  }
796
801
  showContextMenu(e, sectionName, itemName) {
797
802
  const isPinned = this.isPinned(sectionName, itemName);
798
- const section = this.dashboardRef?.sections?.find(s => s.name === sectionName);
799
- const sectionEntries = section ? getSectionItems(section) : [];
800
- const foundEntry = sectionEntries.find(([name]) => name === itemName);
801
- const item = foundEntry?.[1];
802
- const groups = getElementDemoGroups(item);
803
+ const groups = this.findEntry(sectionName, itemName)?.entry.demoGroups ?? [];
803
804
  const menuItems = [
804
805
  {
805
806
  name: isPinned ? 'Unpin' : 'Pin',
@@ -841,21 +842,17 @@ let WccSidebar = (() => {
841
842
  * Render the PINNED section (only if there are pinned items)
842
843
  */
843
844
  renderPinnedSection() {
844
- if (!this.dashboardRef?.sections || this.pinnedItems.size === 0) {
845
+ if (!this.manifest || this.pinnedItems.size === 0) {
845
846
  return null;
846
847
  }
847
848
  const isCollapsed = this.collapsedSections.has(PINNED_SECTION);
848
- // Collect pinned items with their original section info
849
849
  // Pinned items are NOT filtered by search - they always remain visible
850
850
  const pinnedEntries = [];
851
851
  for (const key of this.pinnedItems) {
852
852
  const [sectionName, itemName] = key.split('::');
853
- const section = this.dashboardRef.sections.find(s => s.name === sectionName);
854
- if (section) {
855
- const found = getSectionItems(section).find(([name]) => name === itemName);
856
- if (found) {
857
- pinnedEntries.push({ sectionName, itemName, item: found[1], section });
858
- }
853
+ const found = this.findEntry(sectionName, itemName);
854
+ if (found) {
855
+ pinnedEntries.push(found);
859
856
  }
860
857
  }
861
858
  if (pinnedEntries.length === 0) {
@@ -876,11 +873,10 @@ let WccSidebar = (() => {
876
873
  <span>Pinned</span>
877
874
  </div>
878
875
  <div class="section-content ${isCollapsed ? 'collapsed' : ''}" role="group" aria-label="Pinned">
879
- ${pinnedEntries.map(({ sectionName, itemName, item, section }) => {
880
- const isSelected = this.selectedItem === item;
881
- const type = section.type === 'elements' ? 'element' : 'page';
876
+ ${pinnedEntries.map(({ section, entry }) => {
877
+ const isSelected = this.isSelected(section.name, entry.name);
882
878
  const icon = section.type === 'elements'
883
- ? (getElementDemoGroups(item).length > 1 ? 'library_books' : 'featured_video')
879
+ ? (entry.demoGroups.length > 1 ? 'library_books' : 'featured_video')
884
880
  : 'insert_drive_file';
885
881
  return html `
886
882
  <div
@@ -890,17 +886,14 @@ let WccSidebar = (() => {
890
886
  aria-level="2"
891
887
  aria-selected=${isSelected ? 'true' : 'false'}
892
888
  aria-current=${isSelected ? 'page' : 'false'}
893
- data-key=${`pinned:${sectionName}::${itemName}`}
894
- title=${itemName}
895
- @click=${async () => {
896
- await plugins.deesDomtools.DomTools.setupDomTools();
897
- this.selectItem(type, itemName, item, 0, section);
898
- }}
899
- @contextmenu=${(e) => this.showContextMenu(e, sectionName, itemName)}
889
+ data-key=${`pinned:${section.name}::${entry.name}`}
890
+ title=${entry.name}
891
+ @click=${() => this.selectItem(section.name, entry.name, 0)}
892
+ @contextmenu=${(e) => this.showContextMenu(e, section.name, entry.name)}
900
893
  >
901
894
  <i class="material-symbols-outlined" aria-hidden="true">${icon}</i>
902
- <div class="text">${this.highlightMatch(itemName)}</div>
903
- <span class="section-tag">${sectionName}</span>
895
+ <div class="text">${this.highlightMatch(entry.name)}</div>
896
+ <span class="section-tag">${section.name}</span>
904
897
  </div>
905
898
  `;
906
899
  })}
@@ -911,13 +904,12 @@ let WccSidebar = (() => {
911
904
  * Render all sections
912
905
  */
913
906
  renderSections() {
914
- if (!this.dashboardRef?.sections) {
907
+ if (!this.manifest) {
915
908
  return null;
916
909
  }
917
- this.initCollapsedSections();
918
- return this.dashboardRef.sections.map((section) => {
919
- const listedEntries = getSectionItems(section).filter(([name, item]) => this.entryMatchesSearch(name, item));
920
- const withoutDemoEntries = getSectionItemsWithoutDemo(section).filter(([name, item]) => this.entryMatchesSearch(name, item));
910
+ return this.manifest.sections.map((section) => {
911
+ const listedEntries = section.entries.filter((entry) => this.entryMatchesSearch(entry));
912
+ const withoutDemoEntries = section.entriesWithoutDemo.filter((entry) => this.entryMatchesSearch(entry));
921
913
  // Hide section if no items match the search
922
914
  if (listedEntries.length === 0 && withoutDemoEntries.length === 0 && this.searchQuery) {
923
915
  return null;
@@ -949,9 +941,9 @@ let WccSidebar = (() => {
949
941
  */
950
942
  renderSectionItems(section, filteredEntries) {
951
943
  if (section.type === 'pages') {
952
- return filteredEntries.map(([pageName, item]) => {
953
- const isPinned = this.isPinned(section.name, pageName);
954
- const isSelected = this.selectedItem === item;
944
+ return filteredEntries.map((entry) => {
945
+ const isPinned = this.isPinned(section.name, entry.name);
946
+ const isSelected = this.isSelected(section.name, entry.name);
955
947
  return html `
956
948
  <div
957
949
  class="treeitem selectOption ${isSelected ? 'selected' : ''} ${isPinned ? 'pinned' : ''}"
@@ -960,25 +952,21 @@ let WccSidebar = (() => {
960
952
  aria-level="2"
961
953
  aria-selected=${isSelected ? 'true' : 'false'}
962
954
  aria-current=${isSelected ? 'page' : 'false'}
963
- data-key=${this.getItemKey(section.name, null, pageName)}
964
- title=${pageName}
965
- @click=${async () => {
966
- await plugins.deesDomtools.DomTools.setupDomTools();
967
- this.selectItem('page', pageName, item, 0, section);
968
- }}
969
- @contextmenu=${(e) => this.showContextMenu(e, section.name, pageName)}
955
+ data-key=${this.getItemKey(section.name, null, entry.name)}
956
+ title=${entry.name}
957
+ @click=${() => this.selectItem(section.name, entry.name, 0)}
958
+ @contextmenu=${(e) => this.showContextMenu(e, section.name, entry.name)}
970
959
  >
971
960
  <i class="material-symbols-outlined" aria-hidden="true">insert_drive_file</i>
972
- <div class="text">${this.highlightMatch(pageName)}</div>
961
+ <div class="text">${this.highlightMatch(entry.name)}</div>
973
962
  </div>
974
963
  `;
975
964
  });
976
965
  }
977
- // type === 'elements' - group by demoGroups (supports string | string[])
966
+ // type === 'elements' - group by demoGroups
978
967
  const groupedItems = new Map();
979
968
  for (const entry of filteredEntries) {
980
- const groups = getElementDemoGroups(entry[1]);
981
- for (const group of groups.length > 0 ? groups : [null]) {
969
+ for (const group of entry.demoGroups.length > 0 ? entry.demoGroups : [null]) {
982
970
  if (!groupedItems.has(group)) {
983
971
  groupedItems.set(group, []);
984
972
  }
@@ -987,7 +975,7 @@ let WccSidebar = (() => {
987
975
  }
988
976
  const renderItems = [];
989
977
  for (const entry of groupedItems.get(null) || []) {
990
- renderItems.push({ type: 'element', entry, sortKey: entry[0].toLowerCase() });
978
+ renderItems.push({ type: 'element', entry, sortKey: entry.name.toLowerCase() });
991
979
  }
992
980
  for (const [groupName, items] of groupedItems) {
993
981
  if (groupName === null)
@@ -1043,24 +1031,21 @@ let WccSidebar = (() => {
1043
1031
  </div>
1044
1032
  ${isOpen ? html `
1045
1033
  <div class="nodemo-list" role="group" aria-label="Without demo">
1046
- ${entries.map(([elementName, item]) => {
1047
- const tagName = getElementTagName(item);
1048
- return html `
1049
- <div
1050
- class="treeitem selectOption nodemo"
1051
- role="treeitem"
1052
- tabindex="-1"
1053
- aria-level="3"
1054
- aria-disabled="true"
1055
- aria-description="No demo"
1056
- data-key=${`nodemo:${section.name}::${elementName}`}
1057
- title=${tagName ? `<${tagName}> has no demo` : `${elementName} has no demo`}
1058
- >
1059
- <i class="material-symbols-outlined" aria-hidden="true">block</i>
1060
- <div class="text">${this.highlightMatch(elementName)}</div>
1061
- </div>
1062
- `;
1063
- })}
1034
+ ${entries.map((entry) => html `
1035
+ <div
1036
+ class="treeitem selectOption nodemo"
1037
+ role="treeitem"
1038
+ tabindex="-1"
1039
+ aria-level="3"
1040
+ aria-disabled="true"
1041
+ aria-description="No demo"
1042
+ data-key=${`nodemo:${section.name}::${entry.name}`}
1043
+ title=${entry.tagName ? `<${entry.tagName}> has no demo` : `${entry.name} has no demo`}
1044
+ >
1045
+ <i class="material-symbols-outlined" aria-hidden="true">block</i>
1046
+ <div class="text">${this.highlightMatch(entry.name)}</div>
1047
+ </div>
1048
+ `)}
1064
1049
  </div>
1065
1050
  ` : null}
1066
1051
  `;
@@ -1069,14 +1054,12 @@ let WccSidebar = (() => {
1069
1054
  * Render a single element item (used by renderSectionItems)
1070
1055
  */
1071
1056
  renderElementItem(entry, section, groupName) {
1072
- const [elementName, item] = entry;
1073
- const demoCount = getDemoCount(item.demo);
1074
- const isMultiDemo = hasMultipleDemos(item.demo);
1057
+ const elementName = entry.name;
1075
1058
  const isExpanded = this.expandedElements.has(elementName);
1076
- const isSelected = this.selectedItem === item;
1059
+ const isSelected = this.isSelected(section.name, elementName);
1077
1060
  const isPinned = this.isPinned(section.name, elementName);
1078
1061
  const itemKey = this.getItemKey(section.name, groupName, elementName);
1079
- if (isMultiDemo) {
1062
+ if (entry.demoCount > 1) {
1080
1063
  // Multi-demo element - render as expandable folder
1081
1064
  return html `
1082
1065
  <div
@@ -1095,8 +1078,8 @@ let WccSidebar = (() => {
1095
1078
  </div>
1096
1079
  ${isExpanded ? html `
1097
1080
  <div class="demo-children" role="group" aria-label=${`${elementName} demos`}>
1098
- ${Array.from({ length: demoCount }, (_, demoIndex) => {
1099
- const isThisDemoSelected = isSelected && this.dashboardRef.selectedDemoIndex === demoIndex;
1081
+ ${Array.from({ length: entry.demoCount }, (_, demoIndex) => {
1082
+ const isThisDemoSelected = this.isSelected(section.name, elementName, demoIndex);
1100
1083
  return html `
1101
1084
  <div
1102
1085
  class="treeitem demo-child ${isThisDemoSelected ? 'selected' : ''}"
@@ -1106,10 +1089,7 @@ let WccSidebar = (() => {
1106
1089
  aria-selected=${isThisDemoSelected ? 'true' : 'false'}
1107
1090
  aria-current=${isThisDemoSelected ? 'page' : 'false'}
1108
1091
  data-key=${`${itemKey}::demo${demoIndex}`}
1109
- @click=${async () => {
1110
- await plugins.deesDomtools.DomTools.setupDomTools();
1111
- this.selectItem('element', elementName, item, demoIndex, section);
1112
- }}
1092
+ @click=${() => this.selectItem(section.name, elementName, demoIndex)}
1113
1093
  >
1114
1094
  <i class="material-symbols-outlined" aria-hidden="true">play_circle</i>
1115
1095
  <div class="text">demo${demoIndex + 1}</div>
@@ -1121,7 +1101,7 @@ let WccSidebar = (() => {
1121
1101
  `;
1122
1102
  }
1123
1103
  // Single demo element
1124
- const icon = getElementDemoGroups(item).length > 1 ? 'library_books' : 'featured_video';
1104
+ const icon = entry.demoGroups.length > 1 ? 'library_books' : 'featured_video';
1125
1105
  return html `
1126
1106
  <div
1127
1107
  class="treeitem selectOption ${isSelected ? 'selected' : ''} ${isPinned ? 'pinned' : ''}"
@@ -1132,10 +1112,7 @@ let WccSidebar = (() => {
1132
1112
  aria-current=${isSelected ? 'page' : 'false'}
1133
1113
  data-key=${itemKey}
1134
1114
  title=${elementName}
1135
- @click=${async () => {
1136
- await plugins.deesDomtools.DomTools.setupDomTools();
1137
- this.selectItem('element', elementName, item, 0, section);
1138
- }}
1115
+ @click=${() => this.selectItem(section.name, elementName, 0)}
1139
1116
  @contextmenu=${(e) => this.showContextMenu(e, section.name, elementName)}
1140
1117
  >
1141
1118
  <i class="material-symbols-outlined" aria-hidden="true">${icon}</i>
@@ -1212,13 +1189,12 @@ let WccSidebar = (() => {
1212
1189
  return name.toLowerCase().includes(this.searchQuery.toLowerCase());
1213
1190
  }
1214
1191
  /** An entry matches by name, registered tag name, or one of its demo groups. */
1215
- entryMatchesSearch(name, item) {
1216
- if (this.matchesSearch(name))
1192
+ entryMatchesSearch(entryArg) {
1193
+ if (this.matchesSearch(entryArg.name))
1217
1194
  return true;
1218
- const tagName = getElementTagName(item);
1219
- if (tagName && this.matchesSearch(tagName))
1195
+ if (entryArg.tagName && this.matchesSearch(entryArg.tagName))
1220
1196
  return true;
1221
- return getElementDemoGroups(item).some((groupName) => this.matchesSearch(groupName));
1197
+ return (entryArg.demoGroups ?? []).some((groupName) => this.matchesSearch(groupName));
1222
1198
  }
1223
1199
  isGroupFilterMatch(groupName) {
1224
1200
  return !!this.searchQuery && groupName.toLowerCase() === this.searchQuery.toLowerCase();
@@ -1368,6 +1344,21 @@ let WccSidebar = (() => {
1368
1344
  }
1369
1345
  e.preventDefault();
1370
1346
  }
1347
+ willUpdate(changedProperties) {
1348
+ super.willUpdate(changedProperties);
1349
+ if (changedProperties.has('manifest') && this.manifest) {
1350
+ this.initCollapsedSections(this.manifest.sections);
1351
+ }
1352
+ // Auto-expand folder when a demo of a multi-demo element is selected
1353
+ if (changedProperties.has('selection') && this.selection) {
1354
+ const found = this.findEntry(this.selection.sectionName, this.selection.itemName);
1355
+ if (found && found.entry.demoCount > 1 && !this.expandedElements.has(found.entry.name)) {
1356
+ const newSet = new Set(this.expandedElements);
1357
+ newSet.add(found.entry.name);
1358
+ this.expandedElements = newSet;
1359
+ }
1360
+ }
1361
+ }
1371
1362
  updated(changedProperties) {
1372
1363
  super.updated(changedProperties);
1373
1364
  // Handle delayed hide for native mode transition
@@ -1385,38 +1376,14 @@ let WccSidebar = (() => {
1385
1376
  this.isHidden = this.isNative;
1386
1377
  }
1387
1378
  }
1388
- // Auto-expand folder when a multi-demo element is selected
1389
- if (changedProperties.has('selectedItem') && this.selectedItem && this.dashboardRef?.sections) {
1390
- for (const section of this.dashboardRef.sections) {
1391
- if (section.type !== 'elements')
1392
- continue;
1393
- const found = getSectionItems(section).find(([_, item]) => item === this.selectedItem);
1394
- if (found) {
1395
- const [elementName, item] = found;
1396
- if (hasMultipleDemos(item.demo) && !this.expandedElements.has(elementName)) {
1397
- const newSet = new Set(this.expandedElements);
1398
- newSet.add(elementName);
1399
- this.expandedElements = newSet;
1400
- }
1401
- break;
1402
- }
1403
- }
1404
- }
1405
1379
  this.syncRovingTabindex();
1406
1380
  }
1407
1381
  // ============ Resize functionality ============
1408
- /** Apply a sidebar width to the sidebar, frame and properties panel. */
1382
+ /** Apply a sidebar width; the shell sizes the frame and properties panel from the event. */
1409
1383
  applyWidth(widthArg) {
1410
1384
  const newWidth = Math.min(SIDEBAR_MAX_WIDTH, Math.max(SIDEBAR_MIN_WIDTH, Math.round(widthArg)));
1411
1385
  this.sidebarWidth = newWidth;
1412
- const frame = this.dashboardRef?.shadowRoot?.querySelector('wcc-frame');
1413
- const properties = this.dashboardRef?.shadowRoot?.querySelector('wcc-properties');
1414
- if (frame) {
1415
- frame.sidebarWidth = newWidth;
1416
- }
1417
- if (properties) {
1418
- properties.sidebarWidth = newWidth;
1419
- }
1386
+ this.dispatchEvent(new CustomEvent('widthChanged', { detail: newWidth }));
1420
1387
  return newWidth;
1421
1388
  }
1422
1389
  handleResizeKeydown(e) {
@@ -1440,58 +1407,45 @@ let WccSidebar = (() => {
1440
1407
  }
1441
1408
  e.preventDefault();
1442
1409
  const newWidth = this.applyWidth(target);
1443
- this.dispatchEvent(new CustomEvent('widthChanged', { detail: newWidth }));
1410
+ this.dispatchEvent(new CustomEvent('widthCommitted', { detail: newWidth }));
1444
1411
  }
1445
1412
  startResize = (e) => {
1446
1413
  e.preventDefault();
1414
+ this.endResize?.();
1447
1415
  this.isResizing = true;
1416
+ this.dispatchEvent(new CustomEvent('resizingChanged', { detail: true }));
1448
1417
  const startX = e.clientX;
1449
1418
  const startWidth = this.sidebarWidth;
1450
- const frame = this.dashboardRef?.shadowRoot?.querySelector('wcc-frame');
1451
- // Disable frame transition during resize
1452
- if (frame) {
1453
- frame.isResizing = true;
1454
- }
1455
1419
  const onMouseMove = (e) => {
1456
1420
  this.applyWidth(startWidth + (e.clientX - startX));
1457
1421
  };
1458
- const onMouseUp = () => {
1459
- this.isResizing = false;
1422
+ const stop = () => {
1460
1423
  document.removeEventListener('mousemove', onMouseMove);
1461
1424
  document.removeEventListener('mouseup', onMouseUp);
1462
- // Re-enable frame transition
1463
- if (frame) {
1464
- frame.isResizing = false;
1465
- }
1466
- // Dispatch event on release for URL persistence
1467
- this.dispatchEvent(new CustomEvent('widthChanged', { detail: this.sidebarWidth }));
1425
+ this.endResize = null;
1426
+ this.isResizing = false;
1427
+ this.dispatchEvent(new CustomEvent('resizingChanged', { detail: false }));
1428
+ };
1429
+ const onMouseUp = () => {
1430
+ stop();
1431
+ // Persist the width in the URL on release
1432
+ this.dispatchEvent(new CustomEvent('widthCommitted', { detail: this.sidebarWidth }));
1468
1433
  };
1434
+ this.endResize = stop;
1469
1435
  document.addEventListener('mousemove', onMouseMove);
1470
1436
  document.addEventListener('mouseup', onMouseUp);
1471
1437
  };
1472
- selectItem(typeArg, itemNameArg, itemArg, demoIndex = 0, section) {
1473
- this.selectedItem = itemArg;
1474
- this.selectedType = typeArg;
1475
- this.dashboardRef.selectedDemoIndex = demoIndex;
1476
- // Set the selected section on dashboard
1477
- if (section) {
1478
- this.dashboardRef.selectedSection = section;
1479
- }
1480
- this.dispatchEvent(new CustomEvent('selectedType', {
1481
- detail: typeArg
1482
- }));
1483
- this.dispatchEvent(new CustomEvent('selectedItemName', {
1484
- detail: itemNameArg
1485
- }));
1486
- this.dispatchEvent(new CustomEvent('selectedItem', {
1487
- detail: itemArg
1488
- }));
1489
- this.dashboardRef.buildUrl();
1490
- // Force re-render to update demo child selection indicator
1491
- this.requestUpdate();
1438
+ selectItem(sectionNameArg, itemNameArg, demoIndexArg = 0) {
1439
+ const selection = {
1440
+ sectionName: sectionNameArg,
1441
+ itemName: itemNameArg,
1442
+ demoIndex: demoIndexArg,
1443
+ };
1444
+ this.selection = selection;
1445
+ this.dispatchEvent(new CustomEvent('selectionChanged', { detail: selection }));
1492
1446
  }
1493
1447
  };
1494
1448
  return WccSidebar = _classThis;
1495
1449
  })();
1496
1450
  export { WccSidebar };
1497
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLXNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90c193ZWIvZWxlbWVudHMvd2NjLXNpZGViYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUIsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckgsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUvRixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFaEgsT0FBTyxFQUFFLGNBQWMsRUFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7SUFHdkIsVUFBVTs0QkFEdEIsYUFBYSxDQUFDLGFBQWEsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUFuQixTQUFRLFdBQVc7Ozs7d0NBQ3hDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt3Q0FHOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO3dDQUc5QixRQUFRLEVBQUU7b0NBR1YsUUFBUSxFQUFFOzRDQUlWLEtBQUssRUFBRTs2Q0FJUCxLQUFLLEVBQUU7K0NBSVAsS0FBSyxFQUFFO3VDQUlQLFFBQVEsRUFBRTt1Q0FJVixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUs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
1451
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLXNpZGViYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90c19zaGVsbC9lbGVtZW50cy93Y2Mtc2lkZWJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBdUIsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckgsT0FBTyxLQUFLLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUs3RSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztBQUM5QixNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUM7SUFVdkIsVUFBVTs0QkFEdEIsYUFBYSxDQUFDLGFBQWEsQ0FBQzs7OztzQkFDRyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUFuQixTQUFRLFdBQVc7Ozs7b0NBQ3hDLFFBQVEsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztxQ0FHOUIsUUFBUSxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO29DQUc5QixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLENBQUM7NENBSTNCLEtBQUssRUFBRTs2Q0FJUCxLQUFLLEVBQUU7K0NBSVAsS0FBSyxFQUFFO3VDQUlQLFFBQVEsRUFBRTt1Q0FJVixRQUFRLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7d0NBSTlCLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztzQ0FJMUIsS0FBSyxFQUFFO29DQUlQLEtBQUssRUFBRTswQ0FJUCxLQUFLLEVBQUU7WUF6Q1IsNktBQVMsUUFBUSw2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