@xplortech/apollo-core 2.10.0 → 2.12.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 (724) hide show
  1. package/.typings/apollo-components.html-data.json +134 -12
  2. package/AGENTS.md +27 -3
  3. package/README.md +12 -0
  4. package/build/components/accordion.css +1 -0
  5. package/build/components/application-shell.css +1 -0
  6. package/build/components/avatar.css +1 -0
  7. package/build/components/backdrop.css +1 -0
  8. package/build/components/badge.css +1 -0
  9. package/build/components/banner.css +1 -0
  10. package/build/components/breadcrumbs.css +1 -0
  11. package/build/components/button-row.css +1 -0
  12. package/build/components/button.css +1 -0
  13. package/build/components/calendar.css +1 -0
  14. package/build/components/checkbox-radio.css +1 -0
  15. package/build/components/choicelist.css +1 -0
  16. package/build/components/content-area.css +1 -0
  17. package/build/components/dashboard.css +1 -0
  18. package/build/components/data-card.css +1 -0
  19. package/build/components/divider.css +1 -0
  20. package/build/components/dropdown.css +1 -0
  21. package/build/components/dynamic-table-cell.css +1 -0
  22. package/build/components/dynamic-table-row.css +1 -0
  23. package/build/components/dynamic-table.css +1 -0
  24. package/build/components/grid.css +1 -0
  25. package/build/components/header-accordion.css +1 -0
  26. package/build/components/icon.css +1 -0
  27. package/build/components/input-color.css +1 -0
  28. package/build/components/input-date.css +1 -0
  29. package/build/components/input-file.css +1 -0
  30. package/build/components/input-phone.css +1 -0
  31. package/build/components/input-search.css +1 -0
  32. package/build/components/input-time.css +1 -0
  33. package/build/components/input.css +1 -0
  34. package/build/components/label.css +1 -0
  35. package/build/components/large-card.css +1 -0
  36. package/build/components/list-action.css +1 -0
  37. package/build/components/list-item.css +1 -0
  38. package/build/components/list.css +1 -0
  39. package/build/components/main-nav.css +1 -0
  40. package/build/components/modal.css +1 -0
  41. package/build/components/nav-item.css +1 -0
  42. package/build/components/pagination.css +1 -0
  43. package/build/components/panel.css +1 -0
  44. package/build/components/popover.css +1 -0
  45. package/build/components/progress-bar.css +1 -0
  46. package/build/components/progress-indicator.css +1 -0
  47. package/build/components/secondary-nav.css +1 -0
  48. package/build/components/select.css +1 -0
  49. package/build/components/side-nav.css +1 -0
  50. package/build/components/skeleton.css +1 -0
  51. package/build/components/slideout.css +1 -0
  52. package/build/components/spotlight.css +1 -0
  53. package/build/components/table-header-cell.css +1 -0
  54. package/build/components/table-header.css +1 -0
  55. package/build/components/table.css +1 -0
  56. package/build/components/tabs.css +1 -0
  57. package/build/components/tag.css +1 -0
  58. package/build/components/toast.css +1 -0
  59. package/build/components/toggle.css +1 -0
  60. package/build/components/toolbar.css +1 -0
  61. package/build/components/tooltip.css +1 -0
  62. package/build/components/top-nav.css +1 -0
  63. package/build/components/utility-bar.css +1 -0
  64. package/build/components-manifest.json +220 -0
  65. package/build/core.css +2 -0
  66. package/build/reset.css +394 -0
  67. package/build/style.css +2 -13120
  68. package/build/tailwind-theme.css +2 -0
  69. package/build/typography.css +1 -0
  70. package/build/variables/apollo.css +779 -0
  71. package/build/variables/field-edge.css +554 -0
  72. package/build/vendor/flatpickr.css +1 -0
  73. package/dist/apollo-core/apollo-core.css +2 -55
  74. package/dist/apollo-core/apollo-core.esm.js +1 -1
  75. package/dist/apollo-core/p-0095174c.entry.js +1 -0
  76. package/dist/apollo-core/p-020ecd66.entry.js +1 -0
  77. package/dist/apollo-core/p-0463c29f.entry.js +1 -0
  78. package/dist/apollo-core/p-091411e3.entry.js +1 -0
  79. package/dist/apollo-core/p-0be4dbb8.entry.js +1 -0
  80. package/dist/apollo-core/p-1139fac0.entry.js +1 -0
  81. package/dist/apollo-core/p-121d1a4b.entry.js +1 -0
  82. package/dist/apollo-core/p-140a96c7.entry.js +1 -0
  83. package/dist/apollo-core/p-1M1pu0C2.js +1 -0
  84. package/dist/apollo-core/p-1a417191.entry.js +1 -0
  85. package/dist/apollo-core/p-256ece8b.entry.js +1 -0
  86. package/dist/apollo-core/p-26861d09.entry.js +1 -0
  87. package/dist/apollo-core/p-26b6a0ed.entry.js +1 -0
  88. package/dist/apollo-core/p-39e71d86.entry.js +1 -0
  89. package/dist/apollo-core/p-3d9c90ee.entry.js +1 -0
  90. package/dist/apollo-core/p-3dd1de49.entry.js +1 -0
  91. package/dist/apollo-core/p-4129d971.entry.js +1 -0
  92. package/dist/apollo-core/p-46d21684.entry.js +1 -0
  93. package/dist/apollo-core/p-4e61587f.entry.js +1 -0
  94. package/dist/apollo-core/p-5afc9831.entry.js +1 -0
  95. package/dist/apollo-core/p-5ca18bc1.entry.js +1 -0
  96. package/dist/apollo-core/p-5d25a84a.entry.js +1 -0
  97. package/dist/apollo-core/p-5e5c5016.entry.js +1 -0
  98. package/dist/apollo-core/p-601b3ab5.entry.js +1 -0
  99. package/dist/apollo-core/p-616c5a32.entry.js +1 -0
  100. package/dist/apollo-core/p-638fd9b1.entry.js +1 -0
  101. package/dist/apollo-core/p-643c8038.entry.js +1 -0
  102. package/dist/apollo-core/p-707b1918.entry.js +1 -0
  103. package/dist/apollo-core/p-724c5038.entry.js +1 -0
  104. package/dist/apollo-core/p-76f64d65.entry.js +1 -0
  105. package/dist/apollo-core/p-7976cd3b.entry.js +1 -0
  106. package/dist/apollo-core/p-7f105d63.entry.js +1 -0
  107. package/dist/apollo-core/p-80a11cad.entry.js +1 -0
  108. package/dist/apollo-core/p-853418be.entry.js +1 -0
  109. package/dist/apollo-core/p-875e0eaa.entry.js +1 -0
  110. package/dist/apollo-core/p-8845106f.entry.js +1 -0
  111. package/dist/apollo-core/p-8a81ef98.entry.js +1 -0
  112. package/dist/apollo-core/p-8a925e9d.entry.js +1 -0
  113. package/dist/apollo-core/p-8ddbf2e2.entry.js +1 -0
  114. package/dist/apollo-core/p-9747cf43.entry.js +1 -0
  115. package/dist/apollo-core/p-9b0174b1.entry.js +1 -0
  116. package/dist/apollo-core/p-9bf2ff9f.entry.js +1 -0
  117. package/dist/apollo-core/p-BFTU3MAI.js +1 -0
  118. package/dist/apollo-core/p-BQtbf88X.js +1 -0
  119. package/dist/apollo-core/p-CWdQxaaX.js +1 -0
  120. package/dist/apollo-core/p-C_PEOQWj.js +1 -0
  121. package/dist/apollo-core/p-CzwViN3U.js +1 -0
  122. package/dist/apollo-core/p-DkqlawVY.js +1 -0
  123. package/dist/apollo-core/p-Dqb1pIRo.js +1 -0
  124. package/dist/apollo-core/p-_r9-FML8.js +1 -0
  125. package/dist/apollo-core/p-a0d3b7f8.entry.js +1 -0
  126. package/dist/apollo-core/p-a33b0943.entry.js +1 -0
  127. package/dist/apollo-core/p-b537f72d.entry.js +1 -0
  128. package/dist/apollo-core/p-ba41bbd5.entry.js +1 -0
  129. package/dist/apollo-core/p-bb22ed2a.entry.js +1 -0
  130. package/dist/apollo-core/p-c25aebe5.entry.js +1 -0
  131. package/dist/apollo-core/p-c427a31d.entry.js +1 -0
  132. package/dist/apollo-core/p-cde21f72.entry.js +1 -0
  133. package/dist/apollo-core/p-d288c1d1.entry.js +1 -0
  134. package/dist/apollo-core/p-d37488d4.entry.js +1 -0
  135. package/dist/apollo-core/p-d3f2b8b8.entry.js +1 -0
  136. package/dist/apollo-core/p-dfaba114.entry.js +1 -0
  137. package/dist/apollo-core/p-e00ed4f4.entry.js +1 -0
  138. package/dist/apollo-core/p-e2a16242.entry.js +1 -0
  139. package/dist/apollo-core/p-e4ae3f60.entry.js +1 -0
  140. package/dist/apollo-core/p-ec488f9c.entry.js +1 -0
  141. package/dist/apollo-core/p-efa21ec0.entry.js +1 -0
  142. package/dist/apollo-core/p-f199ad66.entry.js +1 -0
  143. package/dist/apollo-core/p-f2bfe6a6.entry.js +1 -0
  144. package/dist/apollo-core/p-fd2756d8.entry.js +1 -0
  145. package/dist/apollo-core/p-fef6c256.entry.js +1 -0
  146. package/dist/apollo-core/p-ff8acf15.entry.js +1 -0
  147. package/dist/apollo-core/p-ukZKsqqq.js +2 -0
  148. package/dist/cjs/_commonjsHelpers-BJu3ubxk.js +10 -0
  149. package/dist/cjs/apollo-core.cjs.js +2 -2
  150. package/dist/cjs/floating-ui.dom-DuvGwvW-.js +1710 -0
  151. package/dist/cjs/{index-BaXVr8ux.js → index-3cBvw409.js} +760 -9
  152. package/dist/cjs/index-DP4JWqOH.js +456 -0
  153. package/dist/cjs/lifecycle-DeSsFfQZ.js +74 -0
  154. package/dist/cjs/light-dom-slots-CS8Q9rRZ.js +19 -0
  155. package/dist/cjs/loader.cjs.js +2 -2
  156. package/dist/cjs/side-nav-slot-utils-DMog5BVN.js +41 -0
  157. package/dist/cjs/slot-presence-HmQUW2Ba.js +10 -0
  158. package/dist/cjs/tab-a11y-ids--A4ZoXEj.js +27 -0
  159. package/dist/cjs/top-nav-constants-DckvgAo7.js +5 -0
  160. package/dist/cjs/xpl-accordion.cjs.entry.js +5 -3
  161. package/dist/cjs/xpl-application-shell.cjs.entry.js +2 -2
  162. package/dist/cjs/xpl-avatar_3.cjs.entry.js +210 -0
  163. package/dist/cjs/xpl-backdrop.cjs.entry.js +19 -0
  164. package/dist/cjs/xpl-badge.cjs.entry.js +37 -0
  165. package/dist/cjs/xpl-banner.cjs.entry.js +74 -0
  166. package/dist/cjs/xpl-breadcrumb-item.cjs.entry.js +18 -0
  167. package/dist/cjs/xpl-breadcrumbs.cjs.entry.js +14 -0
  168. package/dist/cjs/xpl-button-row.cjs.entry.js +2 -2
  169. package/dist/cjs/xpl-button.cjs.entry.js +81 -0
  170. package/dist/cjs/xpl-calendar.cjs.entry.js +10 -6
  171. package/dist/cjs/xpl-checkbox.cjs.entry.js +32 -0
  172. package/dist/cjs/xpl-choicelist.cjs.entry.js +68 -0
  173. package/dist/cjs/xpl-content-area.cjs.entry.js +15 -0
  174. package/dist/cjs/xpl-dashboard.cjs.entry.js +14 -0
  175. package/dist/cjs/xpl-data-card.cjs.entry.js +111 -0
  176. package/dist/cjs/xpl-dropdown_4.cjs.entry.js +577 -0
  177. package/dist/cjs/xpl-dynamic-table-cell.cjs.entry.js +8 -6
  178. package/dist/cjs/xpl-dynamic-table-row.cjs.entry.js +5 -5
  179. package/dist/cjs/xpl-dynamic-table.cjs.entry.js +11 -18
  180. package/dist/cjs/xpl-grid-item.cjs.entry.js +2 -2
  181. package/dist/cjs/xpl-grid.cjs.entry.js +6 -6
  182. package/dist/cjs/xpl-header-accordion.cjs.entry.js +69 -0
  183. package/dist/{esm/xpl-avatar_54.entry.js → cjs/xpl-icon.cjs.entry.js} +1293 -10607
  184. package/dist/cjs/xpl-input-color.cjs.entry.js +435 -0
  185. package/dist/cjs/xpl-input-phone.cjs.entry.js +509 -0
  186. package/dist/cjs/xpl-input-time.cjs.entry.js +196 -0
  187. package/dist/cjs/xpl-input_4.cjs.entry.js +524 -0
  188. package/dist/cjs/xpl-large-card.cjs.entry.js +63 -4
  189. package/dist/cjs/xpl-list-item.cjs.entry.js +460 -0
  190. package/dist/cjs/xpl-list.cjs.entry.js +396 -0
  191. package/dist/cjs/xpl-main-nav.cjs.entry.js +2 -2
  192. package/dist/cjs/xpl-modal.cjs.entry.js +78 -0
  193. package/dist/cjs/xpl-nav-header-menu.cjs.entry.js +86 -0
  194. package/dist/cjs/xpl-nav-item.cjs.entry.js +25 -0
  195. package/dist/cjs/xpl-pagination.cjs.entry.js +112 -0
  196. package/dist/cjs/xpl-panel.cjs.entry.js +21 -0
  197. package/dist/cjs/xpl-popover.cjs.entry.js +265 -0
  198. package/dist/cjs/xpl-progress-bar.cjs.entry.js +41 -0
  199. package/dist/cjs/xpl-progress-indicator.cjs.entry.js +74 -0
  200. package/dist/cjs/xpl-secondary-nav.cjs.entry.js +14 -0
  201. package/dist/cjs/xpl-select_2.cjs.entry.js +493 -0
  202. package/dist/cjs/xpl-side-nav-header-item.cjs.entry.js +101 -0
  203. package/dist/cjs/xpl-side-nav-item.cjs.entry.js +130 -0
  204. package/dist/cjs/xpl-side-nav-section.cjs.entry.js +105 -0
  205. package/dist/cjs/xpl-side-nav.cjs.entry.js +272 -0
  206. package/dist/cjs/xpl-skeleton.cjs.entry.js +26 -0
  207. package/dist/cjs/xpl-slideout.cjs.entry.js +47 -0
  208. package/dist/cjs/xpl-spotlight.cjs.entry.js +722 -0
  209. package/dist/cjs/xpl-tab-panel.cjs.entry.js +24 -0
  210. package/dist/cjs/xpl-tab.cjs.entry.js +87 -0
  211. package/dist/cjs/xpl-table-header-cell.cjs.entry.js +5 -3
  212. package/dist/cjs/xpl-table-header.cjs.entry.js +2 -2
  213. package/dist/cjs/xpl-table.cjs.entry.js +185 -0
  214. package/dist/cjs/xpl-tabs.cjs.entry.js +373 -0
  215. package/dist/cjs/xpl-toast.cjs.entry.js +91 -0
  216. package/dist/cjs/xpl-toggle.cjs.entry.js +6 -6
  217. package/dist/cjs/xpl-toolbar.cjs.entry.js +3 -3
  218. package/dist/cjs/xpl-tooltip.cjs.entry.js +18 -0
  219. package/dist/cjs/xpl-top-nav-item.cjs.entry.js +435 -0
  220. package/dist/cjs/xpl-top-nav-menu.cjs.entry.js +91 -0
  221. package/dist/cjs/xpl-top-nav.cjs.entry.js +342 -0
  222. package/dist/cjs/xpl-utility-bar.cjs.entry.js +23 -0
  223. package/dist/collection/collection-manifest.json +4 -1
  224. package/dist/collection/components/xpl-accordion/accordion.stories.js +6 -2
  225. package/dist/collection/components/xpl-accordion/xpl-accordion.js +4 -2
  226. package/dist/collection/components/xpl-application-shell/application-shell.stories.js +19 -1
  227. package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +1 -1
  228. package/dist/collection/components/xpl-avatar/avatar.stories.js +19 -9
  229. package/dist/collection/components/xpl-avatar/xpl-avatar.js +12 -16
  230. package/dist/collection/components/xpl-backdrop/backdrop.stories.js +17 -3
  231. package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +1 -1
  232. package/dist/collection/components/xpl-badge/badge.stories.js +21 -8
  233. package/dist/collection/components/xpl-badge/xpl-badge.js +4 -5
  234. package/dist/collection/components/xpl-banner/banner.stories.js +1 -1
  235. package/dist/collection/components/xpl-banner/xpl-banner.js +7 -9
  236. package/dist/collection/components/xpl-breadcrumbs/breadcrumbs.stories.js +5 -0
  237. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +1 -1
  238. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +1 -1
  239. package/dist/collection/components/xpl-button/button.stories.js +2 -0
  240. package/dist/collection/components/xpl-button/xpl-button.js +17 -14
  241. package/dist/collection/components/xpl-button-row/button-row.stories.js +9 -0
  242. package/dist/collection/components/xpl-button-row/xpl-button-row.js +1 -1
  243. package/dist/collection/components/xpl-calendar/calendar.stories.js +11 -3
  244. package/dist/collection/components/xpl-calendar/xpl-calendar.js +9 -5
  245. package/dist/collection/components/xpl-checkbox/checkbox.stories.js +11 -2
  246. package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +7 -8
  247. package/dist/collection/components/xpl-choicelist/choicelist.stories.js +24 -0
  248. package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +6 -6
  249. package/dist/collection/components/xpl-content-area/content-area.stories.js +13 -24
  250. package/dist/collection/components/xpl-content-area/xpl-content-area.js +1 -1
  251. package/dist/collection/components/xpl-dashboard/dashboard.stories.js +9 -0
  252. package/dist/collection/components/xpl-dashboard/xpl-dashboard.js +1 -1
  253. package/dist/collection/components/xpl-data-card/data-card.stories.js +55 -0
  254. package/dist/collection/components/xpl-data-card/xpl-data-card.js +69 -5
  255. package/dist/collection/components/xpl-divider/divider.stories.js +11 -0
  256. package/dist/collection/components/xpl-divider/xpl-divider.js +1 -1
  257. package/dist/collection/components/xpl-dropdown/dropdown.stories.js +13 -5
  258. package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +2 -17
  259. package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +1 -1
  260. package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +9 -5
  261. package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +108 -116
  262. package/dist/collection/components/xpl-dynamic-table/dynamic-table.stories.js +5 -1
  263. package/dist/collection/components/xpl-dynamic-table/xpl-dynamic-table.js +13 -19
  264. package/dist/collection/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.js +7 -5
  265. package/dist/collection/components/xpl-dynamic-table-row/xpl-dynamic-table-row.js +4 -4
  266. package/dist/collection/components/xpl-grid/grid.stories.js +9 -0
  267. package/dist/collection/components/xpl-grid/xpl-grid.js +5 -5
  268. package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +1 -1
  269. package/dist/collection/components/xpl-header-accordion/header-accordion.stories.js +6 -2
  270. package/dist/collection/components/xpl-header-accordion/xpl-header-accordion.js +7 -23
  271. package/dist/collection/components/xpl-icon/icons.stories.js +21 -2
  272. package/dist/collection/components/xpl-icon/xpl-icon.js +2 -3
  273. package/dist/collection/components/xpl-input/input.stories.js +120 -104
  274. package/dist/collection/components/xpl-input/xpl-input-color/color-utils.js +12 -6
  275. package/dist/collection/components/xpl-input/xpl-input-color/xpl-input-color.js +47 -38
  276. package/dist/collection/components/xpl-input/xpl-input-date/xpl-input-date.js +31 -14
  277. package/dist/collection/components/xpl-input/xpl-input-file/xpl-input-file.js +11 -13
  278. package/dist/collection/components/xpl-input/xpl-input-phone/xpl-input-phone.js +38 -41
  279. package/dist/collection/components/xpl-input/xpl-input-search/xpl-input-search.js +5 -8
  280. package/dist/collection/components/xpl-input/xpl-input-time/xpl-input-time.js +11 -10
  281. package/dist/collection/components/xpl-input/xpl-input.js +69 -37
  282. package/dist/collection/components/xpl-large-card/large-card.stories.js +27 -3
  283. package/dist/collection/components/xpl-large-card/xpl-large-card.js +69 -3
  284. package/dist/collection/components/xpl-list/list.stories.js +11 -2
  285. package/dist/collection/components/xpl-list/xpl-list-item/xpl-list-item.js +29 -31
  286. package/dist/collection/components/xpl-list/xpl-list.js +21 -26
  287. package/dist/collection/components/xpl-main-nav/main-nav.stories.js +5 -0
  288. package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +1 -1
  289. package/dist/collection/components/xpl-modal/modal.stories.js +15 -6
  290. package/dist/collection/components/xpl-modal/xpl-modal.js +21 -8
  291. package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +2 -2
  292. package/dist/collection/components/xpl-pagination/pagination.stories.js +10 -2
  293. package/dist/collection/components/xpl-pagination/xpl-pagination.js +10 -12
  294. package/dist/collection/components/xpl-panel/panel.stories.js +9 -0
  295. package/dist/collection/components/xpl-panel/xpl-panel.js +2 -2
  296. package/dist/collection/components/xpl-popover/popover.stories.js +15 -5
  297. package/dist/collection/components/xpl-popover/xpl-popover.js +36 -8
  298. package/dist/collection/components/xpl-progress-bar/progress-bar.stories.js +10 -1
  299. package/dist/collection/components/xpl-progress-bar/xpl-progress-bar.js +2 -2
  300. package/dist/collection/components/xpl-progress-indicator/progress-indicator.stories.js +9 -1
  301. package/dist/collection/components/xpl-progress-indicator/xpl-progress-indicator.js +1 -1
  302. package/dist/collection/components/xpl-radio/radio.stories.js +9 -0
  303. package/dist/collection/components/xpl-radio/xpl-radio.js +7 -7
  304. package/dist/collection/components/xpl-secondary-nav/secondary-nav.stories.js +10 -5
  305. package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +1 -1
  306. package/dist/collection/components/xpl-select/select.stories.js +11 -8
  307. package/dist/collection/components/xpl-select/xpl-select.js +91 -49
  308. package/dist/collection/components/xpl-side-nav/side-nav-slot-utils.js +35 -0
  309. package/dist/collection/components/xpl-side-nav/side-nav.stories.js +454 -18
  310. package/dist/collection/components/xpl-side-nav/xpl-side-nav-header-item/xpl-side-nav-header-item.js +201 -0
  311. package/dist/collection/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.js +10 -11
  312. package/dist/collection/components/xpl-side-nav/xpl-side-nav-section/xpl-side-nav-section.js +186 -0
  313. package/dist/collection/components/xpl-side-nav/xpl-side-nav.js +75 -12
  314. package/dist/collection/components/xpl-skeleton/skeleton.stories.js +10 -1
  315. package/dist/collection/components/xpl-skeleton/xpl-skeleton.js +3 -3
  316. package/dist/collection/components/xpl-slideout/slideout.stories.js +13 -0
  317. package/dist/collection/components/xpl-slideout/xpl-slideout.js +4 -1
  318. package/dist/collection/components/xpl-spotlight/spotlight.stories.js +22 -15
  319. package/dist/collection/components/xpl-spotlight/xpl-spotlight.js +44 -49
  320. package/dist/collection/components/xpl-tab/xpl-tab.js +63 -8
  321. package/dist/collection/components/xpl-tab-panel/xpl-tab-panel.js +3 -4
  322. package/dist/collection/components/xpl-table/table.stories.js +11 -2
  323. package/dist/collection/components/xpl-table/xpl-table.js +52 -36
  324. package/dist/collection/components/xpl-table-header/table-header.stories.js +9 -1
  325. package/dist/collection/components/xpl-table-header/xpl-table-header.js +1 -1
  326. package/dist/collection/components/xpl-table-header-cell/table-header-cell.stories.js +10 -2
  327. package/dist/collection/components/xpl-table-header-cell/xpl-table-header-cell.js +4 -2
  328. package/dist/collection/components/xpl-tabs/segment-control.stories.js +10 -1
  329. package/dist/collection/components/xpl-tabs/tabs.shared.js +77 -19
  330. package/dist/collection/components/xpl-tabs/tabs.stories.js +14 -2
  331. package/dist/collection/components/xpl-tabs/xpl-tabs.js +29 -25
  332. package/dist/collection/components/xpl-tag/tag.stories.js +15 -9
  333. package/dist/collection/components/xpl-tag/xpl-tag.js +5 -7
  334. package/dist/collection/components/xpl-toast/toast.stories.js +43 -17
  335. package/dist/collection/components/xpl-toast/xpl-toast.js +107 -56
  336. package/dist/collection/components/xpl-toggle/toggle.stories.js +8 -1
  337. package/dist/collection/components/xpl-toggle/xpl-toggle.js +5 -5
  338. package/dist/collection/components/xpl-toolbar/toolbar.stories.js +39 -0
  339. package/dist/collection/components/xpl-toolbar/xpl-toolbar.js +2 -2
  340. package/dist/collection/components/xpl-tooltip/tooltip.stories.js +9 -0
  341. package/dist/collection/components/xpl-tooltip/xpl-tooltip.js +1 -1
  342. package/dist/collection/components/xpl-top-nav/top-nav-constants.js +1 -0
  343. package/dist/collection/components/xpl-top-nav/top-nav.stories.js +160 -21
  344. package/dist/collection/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.js +11 -5
  345. package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/top-nav-item-constants.js +2 -0
  346. package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.js +335 -97
  347. package/dist/collection/components/xpl-top-nav/xpl-top-nav-menu/xpl-top-nav-menu.js +114 -0
  348. package/dist/collection/components/xpl-top-nav/xpl-top-nav.js +101 -33
  349. package/dist/collection/components/xpl-utility-bar/utility-bar.stories.js +16 -9
  350. package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +1 -1
  351. package/dist/collection/utils/floating.js +69 -0
  352. package/dist/collection/utils/layout-ancestors.js +7 -0
  353. package/dist/collection/utils/lifecycle.js +31 -10
  354. package/dist/collection/utils/light-dom-slots.js +15 -0
  355. package/dist/collection/utils/slot-presence.js +6 -0
  356. package/dist/collection/utils/ssr-known-mismatches.js +50 -0
  357. package/dist/collection/utils/tab-a11y-ids.js +1 -2
  358. package/dist/components/index.d.ts +6 -0
  359. package/dist/components/index.js +1 -1
  360. package/dist/components/p-1M1pu0C2.js +1 -0
  361. package/dist/components/p-2jYZ7ACH.js +1 -0
  362. package/dist/components/p-BGqQbjLl.js +1 -0
  363. package/dist/components/p-BQtbf88X.js +1 -0
  364. package/dist/components/p-BSHdGbmH.js +1 -0
  365. package/dist/components/p-BnTsRbko.js +1 -0
  366. package/dist/components/p-Bseq_BgD.js +1 -0
  367. package/dist/components/p-CCgZCY_A.js +1 -0
  368. package/dist/components/p-CJzsLWeV.js +1 -0
  369. package/dist/components/p-CRKY79vL.js +1 -0
  370. package/dist/components/p-C_PEOQWj.js +1 -0
  371. package/dist/components/p-CjbPCnPP.js +1 -0
  372. package/dist/components/p-Cjxw-qOg.js +1 -0
  373. package/dist/components/p-D6JUVA1x.js +1 -0
  374. package/dist/components/p-DFGw0APN.js +1 -0
  375. package/dist/components/p-DLLQBDCb.js +1 -0
  376. package/dist/components/p-DS2Kv5fl.js +1 -0
  377. package/dist/components/p-DWUJ_jsx.js +1 -0
  378. package/dist/components/p-Di1NDy0w.js +1 -0
  379. package/dist/components/p-DkM7jyQB.js +1 -0
  380. package/dist/components/p-DkqlawVY.js +1 -0
  381. package/dist/components/p-Dqb1pIRo.js +1 -0
  382. package/dist/components/p-DsRsm61K.js +1 -0
  383. package/dist/components/p-DywQ3S73.js +1 -0
  384. package/dist/components/p-Dzp5p-eh.js +1 -0
  385. package/dist/components/p-Mehog36m.js +1 -0
  386. package/dist/components/p-RYnBuuDE.js +1 -0
  387. package/dist/components/p-_r9-FML8.js +1 -0
  388. package/dist/components/{p-B1PBAEzg.js → p-imCMp2Nl.js} +1 -1
  389. package/dist/components/xpl-accordion.js +1 -1
  390. package/dist/components/xpl-application-shell.js +1 -1
  391. package/dist/components/xpl-avatar.js +1 -1
  392. package/dist/components/xpl-backdrop.js +1 -1
  393. package/dist/components/xpl-badge.js +1 -1
  394. package/dist/components/xpl-banner.js +1 -1
  395. package/dist/components/xpl-breadcrumb-item.js +1 -1
  396. package/dist/components/xpl-breadcrumbs.js +1 -1
  397. package/dist/components/xpl-button-row.js +1 -1
  398. package/dist/components/xpl-button.js +1 -1
  399. package/dist/components/xpl-calendar.js +1 -1
  400. package/dist/components/xpl-checkbox.js +1 -1
  401. package/dist/components/xpl-choicelist.js +1 -1
  402. package/dist/components/xpl-content-area.js +1 -1
  403. package/dist/components/xpl-dashboard.js +1 -1
  404. package/dist/components/xpl-data-card.js +1 -1
  405. package/dist/components/xpl-divider.js +1 -1
  406. package/dist/components/xpl-dropdown-group.js +1 -1
  407. package/dist/components/xpl-dropdown-heading.js +1 -1
  408. package/dist/components/xpl-dropdown-option.js +1 -1
  409. package/dist/components/xpl-dropdown.js +1 -1
  410. package/dist/components/xpl-dynamic-table-cell.js +1 -1
  411. package/dist/components/xpl-dynamic-table-row.js +1 -1
  412. package/dist/components/xpl-dynamic-table.js +1 -1
  413. package/dist/components/xpl-grid-item.js +1 -1
  414. package/dist/components/xpl-grid.js +1 -1
  415. package/dist/components/xpl-header-accordion.js +1 -1
  416. package/dist/components/xpl-icon.js +1 -1
  417. package/dist/components/xpl-input-color.js +1 -1
  418. package/dist/components/xpl-input-date.js +1 -1
  419. package/dist/components/xpl-input-file.js +1 -1
  420. package/dist/components/xpl-input-phone.js +1 -1
  421. package/dist/components/xpl-input-search.js +1 -1
  422. package/dist/components/xpl-input-time.js +1 -1
  423. package/dist/components/xpl-input.js +1 -1
  424. package/dist/components/xpl-large-card.js +1 -1
  425. package/dist/components/xpl-list-item.js +1 -1
  426. package/dist/components/xpl-list.js +1 -1
  427. package/dist/components/xpl-main-nav.js +1 -1
  428. package/dist/components/xpl-modal.js +1 -1
  429. package/dist/components/xpl-nav-header-menu.js +1 -1
  430. package/dist/components/xpl-nav-item.js +1 -1
  431. package/dist/components/xpl-pagination.js +1 -1
  432. package/dist/components/xpl-panel.js +1 -1
  433. package/dist/components/xpl-popover.js +1 -1
  434. package/dist/components/xpl-progress-bar.js +1 -1
  435. package/dist/components/xpl-progress-indicator.js +1 -1
  436. package/dist/components/xpl-radio.js +1 -1
  437. package/dist/components/xpl-secondary-nav.js +1 -1
  438. package/dist/components/xpl-select.js +1 -1
  439. package/dist/components/xpl-side-nav-header-item.d.ts +11 -0
  440. package/dist/components/xpl-side-nav-header-item.js +1 -0
  441. package/dist/components/xpl-side-nav-item.js +1 -1
  442. package/dist/components/xpl-side-nav-section.d.ts +11 -0
  443. package/dist/components/xpl-side-nav-section.js +1 -0
  444. package/dist/components/xpl-side-nav.js +1 -1
  445. package/dist/components/xpl-skeleton.js +1 -1
  446. package/dist/components/xpl-slideout.js +1 -1
  447. package/dist/components/xpl-spotlight.js +1 -1
  448. package/dist/components/xpl-tab-panel.js +1 -1
  449. package/dist/components/xpl-tab.js +1 -1
  450. package/dist/components/xpl-table-header-cell.js +1 -1
  451. package/dist/components/xpl-table-header.js +1 -1
  452. package/dist/components/xpl-table.js +1 -1
  453. package/dist/components/xpl-tabs.js +1 -1
  454. package/dist/components/xpl-tag.js +1 -1
  455. package/dist/components/xpl-toast.js +1 -1
  456. package/dist/components/xpl-toggle.js +1 -1
  457. package/dist/components/xpl-toolbar.js +1 -1
  458. package/dist/components/xpl-tooltip.js +1 -1
  459. package/dist/components/xpl-top-nav-item.js +1 -1
  460. package/dist/components/xpl-top-nav-menu.d.ts +11 -0
  461. package/dist/components/xpl-top-nav-menu.js +1 -0
  462. package/dist/components/xpl-top-nav.js +1 -1
  463. package/dist/components/xpl-utility-bar.js +1 -1
  464. package/dist/css/typography.stories.js +9 -0
  465. package/dist/docs/xpl-application-shell/readme.md +33 -0
  466. package/dist/docs/xpl-backdrop/readme.md +7 -0
  467. package/dist/docs/xpl-badge/readme.md +2 -0
  468. package/dist/docs/xpl-breadcrumbs/xpl-breadcrumbs/readme.md +9 -0
  469. package/dist/docs/xpl-button/readme.md +4 -2
  470. package/dist/docs/xpl-checkbox/readme.md +12 -0
  471. package/dist/docs/xpl-choicelist/readme.md +21 -0
  472. package/dist/docs/xpl-content-area/readme.md +8 -0
  473. package/dist/docs/xpl-data-card/readme.md +26 -0
  474. package/dist/docs/xpl-dropdown/readme.md +32 -6
  475. package/dist/docs/xpl-dynamic-table/readme.md +35 -0
  476. package/dist/docs/xpl-header-accordion/readme.md +18 -0
  477. package/dist/docs/xpl-icon/readme.md +23 -0
  478. package/dist/docs/xpl-input/xpl-input-color/readme.md +18 -0
  479. package/dist/docs/xpl-input/xpl-input-file/readme.md +13 -0
  480. package/dist/docs/xpl-input/xpl-input-time/readme.md +9 -0
  481. package/dist/docs/xpl-large-card/readme.md +18 -0
  482. package/dist/docs/xpl-list/readme.md +2 -2
  483. package/dist/docs/xpl-list/xpl-list-item/readme.md +3 -3
  484. package/dist/docs/xpl-main-nav/readme.md +16 -0
  485. package/dist/docs/xpl-modal/readme.md +20 -0
  486. package/dist/docs/xpl-nav-item/readme.md +14 -0
  487. package/dist/docs/xpl-pagination/readme.md +29 -0
  488. package/dist/docs/xpl-radio/readme.md +12 -0
  489. package/dist/docs/xpl-secondary-nav/readme.md +25 -0
  490. package/dist/docs/xpl-select/readme.md +13 -0
  491. package/dist/docs/xpl-side-nav/readme.md +12 -7
  492. package/dist/docs/xpl-side-nav/xpl-side-nav-header-item/readme.md +155 -0
  493. package/dist/docs/xpl-side-nav/xpl-side-nav-item/readme.md +16 -6
  494. package/dist/docs/xpl-side-nav/xpl-side-nav-section/readme.md +126 -0
  495. package/dist/docs/xpl-slideout/readme.md +23 -0
  496. package/dist/docs/xpl-tab/readme.md +14 -8
  497. package/dist/docs/xpl-table/readme.md +4 -4
  498. package/dist/docs/xpl-toast/readme.md +90 -7
  499. package/dist/docs/xpl-toggle/readme.md +46 -0
  500. package/dist/docs/xpl-toolbar/readme.md +19 -0
  501. package/dist/docs/xpl-top-nav/readme.md +5 -1
  502. package/dist/docs/xpl-top-nav/xpl-top-nav-item/readme.md +79 -20
  503. package/dist/docs/xpl-top-nav/xpl-top-nav-menu/readme.md +96 -0
  504. package/dist/docs/xpl-utility-bar/readme.md +12 -0
  505. package/dist/docs.d.ts +480 -0
  506. package/dist/docs.json +16441 -0
  507. package/dist/esm/_commonjsHelpers-BFTU3MAI.js +7 -0
  508. package/dist/esm/apollo-core.js +3 -3
  509. package/dist/esm/floating-ui.dom-1M1pu0C2.js +1702 -0
  510. package/dist/esm/index-BhYfWG18.js +454 -0
  511. package/dist/esm/{index-CXkZUm1c.js → index-ukZKsqqq.js} +760 -9
  512. package/dist/esm/lifecycle-Dqb1pIRo.js +71 -0
  513. package/dist/esm/light-dom-slots-DkqlawVY.js +17 -0
  514. package/dist/esm/loader.js +3 -3
  515. package/dist/esm/side-nav-slot-utils-C_PEOQWj.js +37 -0
  516. package/dist/esm/slot-presence-_r9-FML8.js +8 -0
  517. package/dist/esm/tab-a11y-ids-BQtbf88X.js +23 -0
  518. package/dist/esm/top-nav-constants-CWdQxaaX.js +3 -0
  519. package/dist/esm/xpl-accordion.entry.js +5 -3
  520. package/dist/esm/xpl-application-shell.entry.js +2 -2
  521. package/dist/esm/xpl-avatar_3.entry.js +206 -0
  522. package/dist/esm/xpl-backdrop.entry.js +17 -0
  523. package/dist/esm/xpl-badge.entry.js +35 -0
  524. package/dist/esm/xpl-banner.entry.js +72 -0
  525. package/dist/esm/xpl-breadcrumb-item.entry.js +16 -0
  526. package/dist/esm/xpl-breadcrumbs.entry.js +12 -0
  527. package/dist/esm/xpl-button-row.entry.js +2 -2
  528. package/dist/esm/xpl-button.entry.js +79 -0
  529. package/dist/esm/xpl-calendar.entry.js +10 -6
  530. package/dist/esm/xpl-checkbox.entry.js +30 -0
  531. package/dist/esm/xpl-choicelist.entry.js +66 -0
  532. package/dist/esm/xpl-content-area.entry.js +13 -0
  533. package/dist/esm/xpl-dashboard.entry.js +12 -0
  534. package/dist/esm/xpl-data-card.entry.js +109 -0
  535. package/dist/esm/xpl-dropdown_4.entry.js +572 -0
  536. package/dist/esm/xpl-dynamic-table-cell.entry.js +8 -6
  537. package/dist/esm/xpl-dynamic-table-row.entry.js +5 -5
  538. package/dist/esm/xpl-dynamic-table.entry.js +11 -18
  539. package/dist/esm/xpl-grid-item.entry.js +2 -2
  540. package/dist/esm/xpl-grid.entry.js +6 -6
  541. package/dist/esm/xpl-header-accordion.entry.js +67 -0
  542. package/dist/{cjs/xpl-avatar_54.cjs.entry.js → esm/xpl-icon.entry.js} +1290 -10661
  543. package/dist/esm/xpl-input-color.entry.js +433 -0
  544. package/dist/esm/xpl-input-phone.entry.js +507 -0
  545. package/dist/esm/xpl-input-time.entry.js +194 -0
  546. package/dist/esm/xpl-input_4.entry.js +519 -0
  547. package/dist/esm/xpl-large-card.entry.js +63 -4
  548. package/dist/esm/xpl-list-item.entry.js +458 -0
  549. package/dist/esm/xpl-list.entry.js +394 -0
  550. package/dist/esm/xpl-main-nav.entry.js +2 -2
  551. package/dist/esm/xpl-modal.entry.js +76 -0
  552. package/dist/esm/xpl-nav-header-menu.entry.js +84 -0
  553. package/dist/esm/xpl-nav-item.entry.js +23 -0
  554. package/dist/esm/xpl-pagination.entry.js +110 -0
  555. package/dist/esm/xpl-panel.entry.js +19 -0
  556. package/dist/esm/xpl-popover.entry.js +263 -0
  557. package/dist/esm/xpl-progress-bar.entry.js +39 -0
  558. package/dist/esm/xpl-progress-indicator.entry.js +72 -0
  559. package/dist/esm/xpl-secondary-nav.entry.js +12 -0
  560. package/dist/esm/xpl-select_2.entry.js +490 -0
  561. package/dist/esm/xpl-side-nav-header-item.entry.js +99 -0
  562. package/dist/esm/xpl-side-nav-item.entry.js +128 -0
  563. package/dist/esm/xpl-side-nav-section.entry.js +103 -0
  564. package/dist/esm/xpl-side-nav.entry.js +270 -0
  565. package/dist/esm/xpl-skeleton.entry.js +24 -0
  566. package/dist/esm/xpl-slideout.entry.js +45 -0
  567. package/dist/esm/xpl-spotlight.entry.js +720 -0
  568. package/dist/esm/xpl-tab-panel.entry.js +22 -0
  569. package/dist/esm/xpl-tab.entry.js +85 -0
  570. package/dist/esm/xpl-table-header-cell.entry.js +5 -3
  571. package/dist/esm/xpl-table-header.entry.js +2 -2
  572. package/dist/esm/xpl-table.entry.js +183 -0
  573. package/dist/esm/xpl-tabs.entry.js +371 -0
  574. package/dist/esm/xpl-toast.entry.js +89 -0
  575. package/dist/esm/xpl-toggle.entry.js +6 -6
  576. package/dist/esm/xpl-toolbar.entry.js +3 -3
  577. package/dist/esm/xpl-tooltip.entry.js +16 -0
  578. package/dist/esm/xpl-top-nav-item.entry.js +433 -0
  579. package/dist/esm/xpl-top-nav-menu.entry.js +89 -0
  580. package/dist/esm/xpl-top-nav.entry.js +340 -0
  581. package/dist/esm/xpl-utility-bar.entry.js +21 -0
  582. package/dist/types/components/xpl-accordion/accordion.stories.d.ts +11 -2
  583. package/dist/types/components/xpl-application-shell/application-shell.stories.d.ts +5 -23
  584. package/dist/types/components/xpl-application-shell/xpl-application-shell.d.ts +1 -1
  585. package/dist/types/components/xpl-avatar/avatar.stories.d.ts +17 -116
  586. package/dist/types/components/xpl-backdrop/backdrop.stories.d.ts +2 -0
  587. package/dist/types/components/xpl-badge/badge.stories.d.ts +7 -0
  588. package/dist/types/components/xpl-breadcrumbs/breadcrumbs.stories.d.ts +10 -27
  589. package/dist/types/components/xpl-button/button.stories.d.ts +4 -0
  590. package/dist/types/components/xpl-button-row/button-row.stories.d.ts +10 -21
  591. package/dist/types/components/xpl-calendar/calendar.stories.d.ts +11 -28
  592. package/dist/types/components/xpl-checkbox/checkbox.stories.d.ts +13 -31
  593. package/dist/types/components/xpl-choicelist/choicelist.stories.d.ts +9 -23
  594. package/dist/types/components/xpl-content-area/content-area.stories.d.ts +7 -1
  595. package/dist/types/components/xpl-dashboard/dashboard.stories.d.ts +8 -17
  596. package/dist/types/components/xpl-data-card/data-card.stories.d.ts +32 -37
  597. package/dist/types/components/xpl-data-card/xpl-data-card.d.ts +12 -0
  598. package/dist/types/components/xpl-divider/divider.stories.d.ts +10 -23
  599. package/dist/types/components/xpl-dropdown/dropdown.stories.d.ts +160 -8
  600. package/dist/types/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.d.ts +1 -1
  601. package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +7 -9
  602. package/dist/types/components/xpl-dynamic-table/dynamic-table.stories.d.ts +7 -22
  603. package/dist/types/components/xpl-dynamic-table/xpl-dynamic-table.d.ts +2 -1
  604. package/dist/types/components/xpl-grid/grid.stories.d.ts +23 -47
  605. package/dist/types/components/xpl-header-accordion/header-accordion.stories.d.ts +8 -24
  606. package/dist/types/components/xpl-header-accordion/xpl-header-accordion.d.ts +0 -2
  607. package/dist/types/components/xpl-icon/icons.stories.d.ts +16 -39
  608. package/dist/types/components/xpl-input/input.stories.d.ts +255 -54
  609. package/dist/types/components/xpl-input/xpl-input-date/xpl-input-date.d.ts +1 -1
  610. package/dist/types/components/xpl-input/xpl-input-file/xpl-input-file.d.ts +1 -1
  611. package/dist/types/components/xpl-input/xpl-input-phone/xpl-input-phone.d.ts +2 -2
  612. package/dist/types/components/xpl-input/xpl-input-time/time-utils.d.ts +1 -1
  613. package/dist/types/components/xpl-input/xpl-input-time/xpl-input-time.d.ts +1 -1
  614. package/dist/types/components/xpl-input/xpl-input.d.ts +11 -6
  615. package/dist/types/components/xpl-large-card/large-card.stories.d.ts +12 -30
  616. package/dist/types/components/xpl-large-card/xpl-large-card.d.ts +12 -0
  617. package/dist/types/components/xpl-list/list.stories.d.ts +33 -1
  618. package/dist/types/components/xpl-list/listitem.d.ts +5 -0
  619. package/dist/types/components/xpl-list/xpl-list-item/xpl-list-item.d.ts +0 -1
  620. package/dist/types/components/xpl-main-nav/main-nav.stories.d.ts +7 -1
  621. package/dist/types/components/xpl-modal/modal.stories.d.ts +16 -16
  622. package/dist/types/components/xpl-modal/xpl-modal.d.ts +3 -1
  623. package/dist/types/components/xpl-pagination/pagination.stories.d.ts +9 -30
  624. package/dist/types/components/xpl-panel/panel.stories.d.ts +9 -1
  625. package/dist/types/components/xpl-popover/popover.stories.d.ts +12 -3
  626. package/dist/types/components/xpl-popover/xpl-popover.d.ts +4 -2
  627. package/dist/types/components/xpl-progress-bar/progress-bar.stories.d.ts +13 -24
  628. package/dist/types/components/xpl-progress-indicator/progress-indicator.stories.d.ts +2 -0
  629. package/dist/types/components/xpl-radio/radio.stories.d.ts +3 -0
  630. package/dist/types/components/xpl-secondary-nav/secondary-nav.stories.d.ts +4 -1
  631. package/dist/types/components/xpl-select/select.stories.d.ts +35 -45
  632. package/dist/types/components/xpl-select/xpl-select.d.ts +1 -0
  633. package/dist/types/components/xpl-side-nav/side-nav-slot-utils.d.ts +3 -0
  634. package/dist/types/components/xpl-side-nav/side-nav.stories.d.ts +73 -1
  635. package/dist/types/components/xpl-side-nav/xpl-side-nav-header-item/xpl-side-nav-header-item.d.ts +24 -0
  636. package/dist/types/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.d.ts +1 -1
  637. package/dist/types/components/xpl-side-nav/xpl-side-nav-section/xpl-side-nav-section.d.ts +24 -0
  638. package/dist/types/components/xpl-side-nav/xpl-side-nav.d.ts +10 -0
  639. package/dist/types/components/xpl-skeleton/skeleton.stories.d.ts +11 -1
  640. package/dist/types/components/xpl-slideout/slideout.stories.d.ts +20 -16
  641. package/dist/types/components/xpl-spotlight/spotlight.stories.d.ts +7 -1
  642. package/dist/types/components/xpl-spotlight/xpl-spotlight.d.ts +1 -0
  643. package/dist/types/components/xpl-tab/xpl-tab.d.ts +5 -0
  644. package/dist/types/components/xpl-table/table.stories.d.ts +16 -37
  645. package/dist/types/components/xpl-table/xpl-table.d.ts +8 -8
  646. package/dist/types/components/xpl-table-header/table-header.stories.d.ts +21 -48
  647. package/dist/types/components/xpl-table-header-cell/table-header-cell.stories.d.ts +11 -34
  648. package/dist/types/components/xpl-tabs/segment-control.stories.d.ts +22 -0
  649. package/dist/types/components/xpl-tabs/tabs.shared.d.ts +35 -1
  650. package/dist/types/components/xpl-tabs/tabs.stories.d.ts +29 -19
  651. package/dist/types/components/xpl-tag/tag.stories.d.ts +3 -0
  652. package/dist/types/components/xpl-toast/toast.stories.d.ts +17 -13
  653. package/dist/types/components/xpl-toast/xpl-toast.d.ts +13 -4
  654. package/dist/types/components/xpl-toggle/toggle.stories.d.ts +13 -31
  655. package/dist/types/components/xpl-toolbar/toolbar.stories.d.ts +35 -0
  656. package/dist/types/components/xpl-tooltip/tooltip.stories.d.ts +10 -24
  657. package/dist/types/components/xpl-top-nav/top-nav-constants.d.ts +1 -0
  658. package/dist/types/components/xpl-top-nav/top-nav.stories.d.ts +79 -1
  659. package/dist/types/components/xpl-top-nav/xpl-top-nav-item/top-nav-item-constants.d.ts +2 -0
  660. package/dist/types/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.d.ts +26 -4
  661. package/dist/types/components/xpl-top-nav/xpl-top-nav-menu/xpl-top-nav-menu.d.ts +18 -0
  662. package/dist/types/components/xpl-top-nav/xpl-top-nav.d.ts +8 -2
  663. package/dist/types/components/xpl-utility-bar/utility-bar.stories.d.ts +9 -2
  664. package/dist/types/components.d.ts +1186 -66
  665. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/.storybook/utils/story-function.d.ts +11 -0
  666. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/.storybook/utils/wait-for-hydration.d.ts +1 -0
  667. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/css/typography.stories.d.ts +76 -0
  668. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/utils/form-bindings.d.ts +4 -0
  669. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/utils/story-vrt.d.ts +1 -0
  670. package/dist/types/third-party.d.ts +20 -0
  671. package/dist/types/utils/floating.d.ts +26 -0
  672. package/dist/types/utils/lifecycle.d.ts +4 -1
  673. package/dist/types/utils/light-dom-slots.d.ts +6 -0
  674. package/dist/types/utils/slot-presence.d.ts +1 -0
  675. package/dist/types/utils/ssr-known-mismatches.d.ts +16 -0
  676. package/dist/utils/form-bindings.js +64 -0
  677. package/dist/utils/story-vrt.js +48 -0
  678. package/hydrate/index.d.ts +287 -0
  679. package/hydrate/index.js +51669 -0
  680. package/hydrate/index.mjs +51659 -0
  681. package/hydrate/package.json +12 -0
  682. package/package.json +111 -44
  683. package/dist/apollo-core/p-0e45f332.entry.js +0 -1
  684. package/dist/apollo-core/p-0f251f98.entry.js +0 -1
  685. package/dist/apollo-core/p-1691c4f3.entry.js +0 -1
  686. package/dist/apollo-core/p-172ac720.entry.js +0 -1
  687. package/dist/apollo-core/p-23870463.entry.js +0 -1
  688. package/dist/apollo-core/p-3b8639b7.entry.js +0 -1
  689. package/dist/apollo-core/p-44a16751.entry.js +0 -1
  690. package/dist/apollo-core/p-4efecab2.entry.js +0 -1
  691. package/dist/apollo-core/p-5094dd97.entry.js +0 -1
  692. package/dist/apollo-core/p-70e7facc.entry.js +0 -1
  693. package/dist/apollo-core/p-728341d2.entry.js +0 -1
  694. package/dist/apollo-core/p-910be81f.entry.js +0 -1
  695. package/dist/apollo-core/p-9adf3694.entry.js +0 -1
  696. package/dist/apollo-core/p-CXkZUm1c.js +0 -2
  697. package/dist/apollo-core/p-c17b6351.entry.js +0 -1
  698. package/dist/apollo-core/p-e08b434c.entry.js +0 -1
  699. package/dist/apollo-core/p-e9e7577f.entry.js +0 -1
  700. package/dist/components/p-3qMYyqTe.js +0 -1
  701. package/dist/components/p-BG0-6Xek.js +0 -1
  702. package/dist/components/p-BT_Lq3Vd.js +0 -1
  703. package/dist/components/p-BWyAzrwu.js +0 -1
  704. package/dist/components/p-B_Wi--Ov.js +0 -1
  705. package/dist/components/p-Bd6JweBt.js +0 -1
  706. package/dist/components/p-Bn-27-xj.js +0 -1
  707. package/dist/components/p-Bs6vq0C6.js +0 -1
  708. package/dist/components/p-C9BO2vL-.js +0 -1
  709. package/dist/components/p-CFW_w5Wj.js +0 -1
  710. package/dist/components/p-CFpsSZyr.js +0 -1
  711. package/dist/components/p-CGNq3DyC.js +0 -1
  712. package/dist/components/p-CVqbA9op.js +0 -1
  713. package/dist/components/p-CtIUusUL.js +0 -1
  714. package/dist/components/p-D97c0GjM.js +0 -1
  715. package/dist/components/p-DBWV65V-.js +0 -1
  716. package/dist/components/p-DEl4Rvzs.js +0 -1
  717. package/dist/components/p-DPTHmitJ.js +0 -1
  718. package/dist/components/p-DllC7F-H.js +0 -1
  719. package/dist/components/p-Ds28UyUR.js +0 -1
  720. package/dist/components/p-U5dPMCXE.js +0 -1
  721. package/dist/components/p-Yj_QFaRn.js +0 -1
  722. package/dist/components/p-hPUzON4O.js +0 -1
  723. package/dist/components/p-kPHfCq1d.js +0 -1
  724. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/css/typography.stories.d.ts +0 -90
@@ -9,23 +9,30 @@ import { AvatarColor, AvatarGroupItem, AvatarStatus, AvatarVariant } from "./com
9
9
  import { BadgeVariantProp } from "./components/xpl-badge/xpl-badge";
10
10
  import { Choice } from "./components/xpl-choicelist/choice";
11
11
  import { DropdownItem, DropdownOptionGroup } from "./components/xpl-dropdown/dropdown-option";
12
- import { Placement } from "@floating-ui/dom";
12
+ import { Placement } from "./utils/floating";
13
+ import { Event } from "./stencil-public-runtime";
13
14
  import { ListItem, XplListOrderChangeDetail } from "./components/xpl-list/listitem";
14
- import { BadgeVariantProp as BadgeVariantProp1 } from "./components/xpl-badge/xpl-badge";
15
+ import { BadgePalette, BadgeVariantProp as BadgeVariantProp1 } from "./components/xpl-badge/xpl-badge";
15
16
  import { PopoverPosition } from "./components/xpl-popover/xpl-popover";
17
+ import { Placement as Placement1 } from "@floating-ui/dom";
16
18
  import { SpotlightActionLayout, SpotlightAnchorPosition } from "./components/xpl-spotlight/xpl-spotlight";
17
19
  import { TagDragEndDetail, TagDragStartDetail } from "./components/xpl-tag/xpl-tag";
18
20
  export { AvatarColor, AvatarGroupItem, AvatarStatus, AvatarVariant } from "./components/xpl-avatar/xpl-avatar";
19
21
  export { BadgeVariantProp } from "./components/xpl-badge/xpl-badge";
20
22
  export { Choice } from "./components/xpl-choicelist/choice";
21
23
  export { DropdownItem, DropdownOptionGroup } from "./components/xpl-dropdown/dropdown-option";
22
- export { Placement } from "@floating-ui/dom";
24
+ export { Placement } from "./utils/floating";
25
+ export { Event } from "./stencil-public-runtime";
23
26
  export { ListItem, XplListOrderChangeDetail } from "./components/xpl-list/listitem";
24
- export { BadgeVariantProp as BadgeVariantProp1 } from "./components/xpl-badge/xpl-badge";
27
+ export { BadgePalette, BadgeVariantProp as BadgeVariantProp1 } from "./components/xpl-badge/xpl-badge";
25
28
  export { PopoverPosition } from "./components/xpl-popover/xpl-popover";
29
+ export { Placement as Placement1 } from "@floating-ui/dom";
26
30
  export { SpotlightActionLayout, SpotlightAnchorPosition } from "./components/xpl-spotlight/xpl-spotlight";
27
31
  export { TagDragEndDetail, TagDragStartDetail } from "./components/xpl-tag/xpl-tag";
28
32
  export namespace Components {
33
+ /**
34
+ * @since 2.0.0
35
+ */
29
36
  interface XplAccordion {
30
37
  /**
31
38
  * set the border of the accordion none: there’s no border wrapping the header bottom:there’s a border below the header bordered: the header is wrapped by a white panel with a rounded border around it on every side
@@ -60,6 +67,9 @@ export namespace Components {
60
67
  */
61
68
  "size": '1' | '2' | '3';
62
69
  }
70
+ /**
71
+ * @since 0.5.0
72
+ */
63
73
  interface XplApplicationShell {
64
74
  /**
65
75
  * @property {boolean} - *
@@ -82,6 +92,9 @@ export namespace Components {
82
92
  */
83
93
  "withUtility": boolean;
84
94
  }
95
+ /**
96
+ * @since 0.1.1
97
+ */
85
98
  interface XplAvatar {
86
99
  /**
87
100
  * Background color when there is no image src
@@ -130,6 +143,9 @@ export namespace Components {
130
143
  */
131
144
  "variant"?: AvatarVariant;
132
145
  }
146
+ /**
147
+ * @since 0.1.2
148
+ */
133
149
  interface XplBackdrop {
134
150
  /**
135
151
  * @property {boolean} - When true, backdrop will have relative position. This is useful when the backdrop doesn't cover the whole view area. If false, the position will be fixed and cover the whole view area.
@@ -137,6 +153,9 @@ export namespace Components {
137
153
  */
138
154
  "relative": boolean;
139
155
  }
156
+ /**
157
+ * @since 0.1.1
158
+ */
140
159
  interface XplBadge {
141
160
  /**
142
161
  * Whether badge shows a bordered ring
@@ -168,6 +187,9 @@ export namespace Components {
168
187
  */
169
188
  "variant": BadgeVariantProp;
170
189
  }
190
+ /**
191
+ * @since 2.6.0
192
+ */
171
193
  interface XplBanner {
172
194
  /**
173
195
  * Primary action label. When provided, an action button is rendered.
@@ -215,6 +237,9 @@ export namespace Components {
215
237
  }
216
238
  interface XplBreadcrumbs {
217
239
  }
240
+ /**
241
+ * @since 0.1.1
242
+ */
218
243
  interface XplButton {
219
244
  /**
220
245
  * Attributes to apply to the inner native `<button>` (e.g., tab a11y wiring). Use this instead of setting `id` / `role` / `aria-*` on the host when the inner control is the element that needs them (e.g., WAI-ARIA composite widgets).
@@ -296,6 +321,9 @@ export namespace Components {
296
321
  */
297
322
  "variant": 'primary' | 'secondary' | 'tertiary' | 'subtle';
298
323
  }
324
+ /**
325
+ * @since 0.4.0
326
+ */
299
327
  interface XplButtonRow {
300
328
  /**
301
329
  * The text for the primary button.
@@ -310,6 +338,9 @@ export namespace Components {
310
338
  */
311
339
  "tertiary": 'string';
312
340
  }
341
+ /**
342
+ * @since 2.0.0
343
+ */
313
344
  interface XplCalendar {
314
345
  /**
315
346
  * Format of the date displayed in the calendar. Default is 'Y-m-d'.
@@ -343,6 +374,9 @@ export namespace Components {
343
374
  */
344
375
  "setDate": (date: string | string[]) => Promise<void>;
345
376
  }
377
+ /**
378
+ * @since 0.1.1
379
+ */
346
380
  interface XplCheckbox {
347
381
  /**
348
382
  * Accessible name for the native checkbox input (sets `aria-label` on the `input`). Use when there is no visible label text in the default slot. Defaults to `''`; empty or whitespace-only values omit `aria-label` on the input so a visible `<label>` remains the sole name source.
@@ -386,6 +420,9 @@ export namespace Components {
386
420
  */
387
421
  "value"?: string;
388
422
  }
423
+ /**
424
+ * @since 0.1.1
425
+ */
389
426
  interface XplChoicelist {
390
427
  /**
391
428
  * An array of choices to be displayed in the list. Each choice should be an object with keys: - `checked` [boolean] - whether to pre-check or not - `children` [Choice[]] - an array of child choices (recursive) - `description` [string] - `label` [string]
@@ -413,6 +450,9 @@ export namespace Components {
413
450
  */
414
451
  "styled"?: boolean;
415
452
  }
453
+ /**
454
+ * @since 0.1.2
455
+ */
416
456
  interface XplContentArea {
417
457
  /**
418
458
  * @property {string} size - The content-area size.
@@ -420,8 +460,14 @@ export namespace Components {
420
460
  */
421
461
  "size": 'wide' | 'narrow' | 'full';
422
462
  }
463
+ /**
464
+ * @since 1.0.0
465
+ */
423
466
  interface XplDashboard {
424
467
  }
468
+ /**
469
+ * @since 1.0.0
470
+ */
425
471
  interface XplDataCard {
426
472
  /**
427
473
  * An optional field that typically describes or modifies the small stat
@@ -479,12 +525,18 @@ export namespace Components {
479
525
  */
480
526
  "variant"?: 'primary' | 'secondary';
481
527
  }
528
+ /**
529
+ * @since 0.3.0
530
+ */
482
531
  interface XplDivider {
483
532
  /**
484
533
  * The tier should be an integer between 0 and 3. Tier 0 dividers do not display text, and 1-3 increase in size with each increasing tier.
485
534
  */
486
535
  "tier"?: number;
487
536
  }
537
+ /**
538
+ * @since 0.4.0
539
+ */
488
540
  interface XplDropdown {
489
541
  /**
490
542
  * whether to anchor the dropdown to the trigger element, requires triggerId to be set
@@ -503,7 +555,7 @@ export namespace Components {
503
555
  /**
504
556
  * called on dropdown option click and keydown events to update isSelected states
505
557
  */
506
- "handleSelect": (e: any, { component }: { component: XplDropdownOption; }) => Promise<void>;
558
+ "handleSelect": (e: Event | null, { component }: DropdownSelectContext) => Promise<void>;
507
559
  /**
508
560
  * text to display as heading
509
561
  * @default false
@@ -539,7 +591,7 @@ export namespace Components {
539
591
  /**
540
592
  * call back function invoked when a selection is made
541
593
  */
542
- "update"?: (e, { component }: { component: Dropdown }) => void;
594
+ "update"?: (e: Event | null, context: { component: Dropdown }) => void;
543
595
  }
544
596
  interface XplDropdownGroup {
545
597
  /**
@@ -583,8 +635,14 @@ export namespace Components {
583
635
  */
584
636
  "value"?: string;
585
637
  }
638
+ /**
639
+ * @since 1.4.0
640
+ */
586
641
  interface XplDynamicTable {
587
642
  }
643
+ /**
644
+ * @since 1.3.0
645
+ */
588
646
  interface XplDynamicTableCell {
589
647
  /**
590
648
  * Whether the cell and its contents are disabled.
@@ -592,6 +650,9 @@ export namespace Components {
592
650
  */
593
651
  "disabled": boolean;
594
652
  }
653
+ /**
654
+ * @since 1.3.0
655
+ */
595
656
  interface XplDynamicTableRow {
596
657
  /**
597
658
  * Whether the row and its cells are disabled.
@@ -604,8 +665,14 @@ export namespace Components {
604
665
  */
605
666
  "selected": boolean;
606
667
  }
668
+ /**
669
+ * @since 0.4.0
670
+ */
607
671
  interface XplGrid {
608
672
  }
673
+ /**
674
+ * @since 0.4.0
675
+ */
609
676
  interface XplGridItem {
610
677
  /**
611
678
  * The number of columns the element should span out of a 6 column grid on a lg size screen
@@ -628,6 +695,9 @@ export namespace Components {
628
695
  */
629
696
  "xs": number;
630
697
  }
698
+ /**
699
+ * @since 1.2.0
700
+ */
631
701
  interface XplHeaderAccordion {
632
702
  /**
633
703
  * The id of the content region controlled by the accordion.
@@ -654,6 +724,9 @@ export namespace Components {
654
724
  */
655
725
  "selectedCount": number;
656
726
  }
727
+ /**
728
+ * @since 1.0.0
729
+ */
657
730
  interface XplIcon {
658
731
  /**
659
732
  * Icon's background color.
@@ -669,6 +742,9 @@ export namespace Components {
669
742
  */
670
743
  "size": number;
671
744
  }
745
+ /**
746
+ * @since 0.3.0
747
+ */
672
748
  interface XplInput {
673
749
  /**
674
750
  * Because `id` is a reserved HTMLElement attribute, we prefix it with an underscore here so that it doesn't get automatically applied to the outer container. Applies to all input types.
@@ -1135,6 +1211,9 @@ export namespace Components {
1135
1211
  */
1136
1212
  "value"?: string;
1137
1213
  }
1214
+ /**
1215
+ * @since 1.9.1
1216
+ */
1138
1217
  interface XplLargeCard {
1139
1218
  /**
1140
1219
  * Description of the Card
@@ -1149,6 +1228,9 @@ export namespace Components {
1149
1228
  */
1150
1229
  "name": string;
1151
1230
  }
1231
+ /**
1232
+ * @since 0.4.0
1233
+ */
1152
1234
  interface XplList {
1153
1235
  /**
1154
1236
  * Clears all radio selections in the list. Also runs when `selectable` is true, the user presses Escape, and focus is on the selected row. Emits `itemSelect` once per row that was selected (checked radio or `selected` prop), typically one.
@@ -1240,6 +1322,9 @@ export namespace Components {
1240
1322
  */
1241
1323
  "titleBadgeVariant"?: BadgeVariantProp1;
1242
1324
  }
1325
+ /**
1326
+ * @since 0.1.2
1327
+ */
1243
1328
  interface XplMainNav {
1244
1329
  /**
1245
1330
  * @property {string} width - The width of the Main Nav.
@@ -1247,6 +1332,9 @@ export namespace Components {
1247
1332
  */
1248
1333
  "width": 'default' | 'md' | 'sm';
1249
1334
  }
1335
+ /**
1336
+ * @since 1.1.0
1337
+ */
1250
1338
  interface XplModal {
1251
1339
  /**
1252
1340
  * Whether the modal is open.
@@ -1292,6 +1380,9 @@ export namespace Components {
1292
1380
  */
1293
1381
  "username"?: string;
1294
1382
  }
1383
+ /**
1384
+ * @since 0.1.2
1385
+ */
1295
1386
  interface XplNavItem {
1296
1387
  /**
1297
1388
  * @property {boolean} - Whether or not the item should control the main nav state on click
@@ -1299,6 +1390,9 @@ export namespace Components {
1299
1390
  */
1300
1391
  "navControl"?: boolean;
1301
1392
  }
1393
+ /**
1394
+ * @since 0.1.1
1395
+ */
1302
1396
  interface XplPagination {
1303
1397
  /**
1304
1398
  * The current active page (1-based). Marked as mutable so we can update from inside this component.
@@ -1329,6 +1423,7 @@ export namespace Components {
1329
1423
  /**
1330
1424
  * A stateless container that defines a section on a page and can house any
1331
1425
  * type of content. Panels are not dismissible and may contain a top accent.
1426
+ * @since 2.6.0
1332
1427
  */
1333
1428
  interface XplPanel {
1334
1429
  /**
@@ -1342,6 +1437,9 @@ export namespace Components {
1342
1437
  */
1343
1438
  "padding": 'default' | 'tight' | 'loose';
1344
1439
  }
1440
+ /**
1441
+ * @since 2.0.0
1442
+ */
1345
1443
  interface XplPopover {
1346
1444
  /**
1347
1445
  * Whether the popover is disabled or not.
@@ -1364,6 +1462,9 @@ export namespace Components {
1364
1462
  */
1365
1463
  "position": PopoverPosition;
1366
1464
  }
1465
+ /**
1466
+ * @since 2.6.0
1467
+ */
1367
1468
  interface XplProgressBar {
1368
1469
  /**
1369
1470
  * The helper text displayed below the progress bar (recommended for error state)
@@ -1394,6 +1495,9 @@ export namespace Components {
1394
1495
  */
1395
1496
  "variant": 'default' | 'success' | 'error' | 'indeterminate';
1396
1497
  }
1498
+ /**
1499
+ * @since 2.7.0
1500
+ */
1397
1501
  interface XplProgressIndicator {
1398
1502
  /**
1399
1503
  * Current step index. Steps with index < currentStep are "finished", the step at currentStep is "active", and steps beyond are "waiting". Set to steps.length to mark all steps as finished. Automatically clamped to [0, steps.length].
@@ -1420,6 +1524,9 @@ export namespace Components {
1420
1524
  */
1421
1525
  "steps"?: string[];
1422
1526
  }
1527
+ /**
1528
+ * @since 0.1.1
1529
+ */
1423
1530
  interface XplRadio {
1424
1531
  /**
1425
1532
  * Whether the input is "on"
@@ -1454,8 +1561,14 @@ export namespace Components {
1454
1561
  */
1455
1562
  "value"?: string;
1456
1563
  }
1564
+ /**
1565
+ * @since 0.3.0
1566
+ */
1457
1567
  interface XplSecondaryNav {
1458
1568
  }
1569
+ /**
1570
+ * @since 0.4.0
1571
+ */
1459
1572
  interface XplSelect {
1460
1573
  /**
1461
1574
  * An array of choices for the user to choose from. Each choice should be of the form: { label: string; href?: string; value?: string; isGroupHeading?: boolean; isSelected?: boolean; isDisabled?: boolean; options?: DropdownItem[]; groupName?: string; }
@@ -1481,12 +1594,12 @@ export namespace Components {
1481
1594
  /**
1482
1595
  * Additional placements to try for the options panel when the default `dropdownPlacement` does not fit. Passed to `xpl-dropdown` / Floating UI `flip`.
1483
1596
  */
1484
- "dropdownFlipFallbackPlacements"?: Placement[];
1597
+ "dropdownFlipFallbackPlacements"?: Placement1[];
1485
1598
  /**
1486
1599
  * Initial Floating UI placement for the options panel (e.g. `top-start`, `bottom-start`). Forwarded to the inner `xpl-dropdown` when the menu is open.
1487
1600
  * @default 'bottom-start'
1488
1601
  */
1489
- "dropdownPlacement": Placement;
1602
+ "dropdownPlacement": Placement1;
1490
1603
  /**
1491
1604
  * If an empty string (attribute present with no value), will display visually as an error. If a string is included, will display visually as an error and include the value as an error message.
1492
1605
  */
@@ -1528,8 +1641,8 @@ export namespace Components {
1528
1641
  "truncate"?: boolean;
1529
1642
  }
1530
1643
  /**
1531
- * Slot-based sidebar for app navigation: a scrollable main `section` and a fixed
1532
- * `nav-footer`. Compose with `xpl-side-nav-item` for rows.
1644
+ * Slot-based sidebar for app navigation: a scrollable `nav-header` + `section`
1645
+ * area and a fixed `nav-footer`. Compose with `xpl-side-nav-item` for rows.
1533
1646
  * **Mobile (v2):** below the Tailwind `md` breakpoint, the sidebar collapses to a
1534
1647
  * ~56px top bar with a toggle button (`sidebar-left-show` / `sidebar-left-hide`).
1535
1648
  * Activating the toggle opens a drawer containing the `section` + `nav-footer`
@@ -1541,6 +1654,7 @@ export namespace Components {
1541
1654
  * the `openChange` event, and the `toggle()` / `setOpen()` methods.
1542
1655
  * **v2 breaking change (beta):** consumers who wrapped their own mobile toggle
1543
1656
  * around `xpl-side-nav` should remove it — the toggle and drawer are now built in.
1657
+ * @since 2.6.0
1544
1658
  */
1545
1659
  interface XplSideNav {
1546
1660
  /**
@@ -1561,6 +1675,49 @@ export namespace Components {
1561
1675
  */
1562
1676
  "toggle": () => Promise<void>;
1563
1677
  }
1678
+ /**
1679
+ * Header row for `xpl-side-nav`'s `nav-header` slot (Figma `<navHeaderItem>`,
1680
+ * node `51299-9007`). Two types:
1681
+ * - **`product-label` (default)** — a non-interactive `<div>` row that shows the
1682
+ * current product/area name in a subdued color. No click behavior.
1683
+ * - **`sub-account`** — an interactive `<button>` row (e.g. a location / account
1684
+ * switcher). Emits `navigate` on activation (pointer click or keyboard); the
1685
+ * consumer wires this to open a modal or other entity-switching experience.
1686
+ * When no `slot="trailing"` content is provided, an auto chevron
1687
+ * (`chevron-expand-y`, a static dual-arrow glyph — no rotation) renders by default.
1688
+ * Both types support `slot="leading"` / `slot="trailing"` (the `icon` prop is a
1689
+ * convenience shorthand for `slot="leading"`, same as `xpl-side-nav-item`) so they
1690
+ * can scale to future uses. Unlike `xpl-side-nav-item`, the leading/trailing
1691
+ * columns are NOT unconditionally reserved — they only render when there is
1692
+ * content, matching the Figma variants where the leading icon is an optional toggle.
1693
+ * **Note on the `sub-account` hover / selected visual:** the interactive row
1694
+ * mirrors `xpl-side-nav-item` — the hover and selected backgrounds fill a single
1695
+ * `__content` pill that wraps the leading icon + label + trailing chevron, with
1696
+ * an 8px (`--xpl-border-radius-default`) radius. The pill insets 8px from the nav
1697
+ * edge (an 8px gutter on the button) so it lines up with the item rows below it,
1698
+ * and hover/selected therefore highlight the whole row content rather than a
1699
+ * partial fragment.
1700
+ */
1701
+ interface XplSideNavHeaderItem {
1702
+ /**
1703
+ * Optional icon name; renders as the default content for `slot="leading"`. When `slot="leading"` content is present, this prop is ignored.
1704
+ */
1705
+ "icon"?: string;
1706
+ /**
1707
+ * The display label for the header item (e.g. the product name or sub-account name).
1708
+ */
1709
+ "label"?: string;
1710
+ /**
1711
+ * Whether the item is currently in a selected state. Only meaningful when `type` is `sub-account` — applies the information-surface pill around the label + trailing chevron.
1712
+ * @default false
1713
+ */
1714
+ "selected": boolean;
1715
+ /**
1716
+ * The header item variant. `product-label` is a static, non-interactive label. `sub-account` is an interactive button that emits `navigate`.
1717
+ * @default 'product-label'
1718
+ */
1719
+ "type": 'product-label' | 'sub-account';
1720
+ }
1564
1721
  /**
1565
1722
  * Navigation row for `xpl-side-nav`. Renders a button (default) or a slot-only
1566
1723
  * anchor container (`link` mode). Three slot positions are available:
@@ -1625,6 +1782,41 @@ export namespace Components {
1625
1782
  */
1626
1783
  "selected": boolean;
1627
1784
  }
1785
+ /**
1786
+ * Grouping / accordion header for `xpl-side-nav`. Wraps nested `xpl-side-nav-item`
1787
+ * (and optional divider separators) elements in the default slot and collapses
1788
+ * them as a unit.
1789
+ * Two variants:
1790
+ * - **Collapsible (default, `collapsible=true`)** — a `<button>` header with a
1791
+ * chevron (`chevron-right` collapsed / `chevron-down` expanded, no rotation —
1792
+ * the glyph itself swaps). Click toggles `expanded` and emits `expandedChange`.
1793
+ * - **Static (`collapsible=false`)** — a non-interactive title row with no chevron;
1794
+ * children are always shown. Used for a static section label (e.g. a future
1795
+ * product-name / location-changer header).
1796
+ * Unlike `xpl-side-nav-item[has-children]`, section children are **not indented**
1797
+ * — they align with top-level items at the same leading-icon column.
1798
+ * `slot="badge"` renders an optional badge (e.g. `xpl-badge`) in the header title
1799
+ * row. The wrapper is suppressed when the slot is empty.
1800
+ */
1801
+ interface XplSideNavSection {
1802
+ /**
1803
+ * Whether the section can be collapsed/expanded. When `false`, renders a static title (no chevron, not a button) and children are always shown.
1804
+ * @default true
1805
+ */
1806
+ "collapsible": boolean;
1807
+ /**
1808
+ * Whether the section is currently expanded. Only meaningful when `collapsible` is true.
1809
+ * @default false
1810
+ */
1811
+ "expanded": boolean;
1812
+ /**
1813
+ * The section title text. Optional, but when `collapsible` is true and both `heading` and `slot="badge"` lack an accessible name, the toggle `<button>` falls back to `aria-label="Toggle section"` so it always has an accessible name.
1814
+ */
1815
+ "heading"?: string;
1816
+ }
1817
+ /**
1818
+ * @since 2.3.6
1819
+ */
1628
1820
  interface XplSkeleton {
1629
1821
  /**
1630
1822
  * A CSS class name to apply to the component.
@@ -1664,6 +1856,9 @@ export namespace Components {
1664
1856
  */
1665
1857
  "width"?: CSSStyleDeclaration['width'];
1666
1858
  }
1859
+ /**
1860
+ * @since 1.1.0
1861
+ */
1667
1862
  interface XplSlideout {
1668
1863
  /**
1669
1864
  * Whether to show a backdrop behind the slideout.
@@ -1686,6 +1881,9 @@ export namespace Components {
1686
1881
  */
1687
1882
  "variant": 'default' | 'warning';
1688
1883
  }
1884
+ /**
1885
+ * @since 2.7.0
1886
+ */
1689
1887
  interface XplSpotlight {
1690
1888
  /**
1691
1889
  * Footer action layout. `default` and `dual` both render the standard Back/Next layout, while `single` renders a single acknowledgement CTA (e.g. "Got it!"). Only applies when `showActions` is `true`.
@@ -1755,7 +1953,19 @@ export namespace Components {
1755
1953
  */
1756
1954
  "totalSteps": number;
1757
1955
  }
1956
+ /**
1957
+ * @since 2.3.8
1958
+ */
1758
1959
  interface XplTab {
1960
+ /**
1961
+ * Optional trailing number badge (e.g. a count). Rendered after the label as a compact `xpl-badge` in both underline (`type="tabs"`) and segment (`type="segment"`) tabs. Leave empty to omit the badge.
1962
+ */
1963
+ "badge"?: string;
1964
+ /**
1965
+ * Color palette for the trailing number badge. Only applies when `badge` is set. Defaults to `purple` — the standard number-badge color in the Figma XPL-Tab Group spec.
1966
+ * @default 'purple'
1967
+ */
1968
+ "badgeVariant": BadgePalette;
1759
1969
  /**
1760
1970
  * Disables this tab (pill or underline).
1761
1971
  * @default false
@@ -1780,11 +1990,11 @@ export namespace Components {
1780
1990
  */
1781
1991
  "groupDisabled": boolean;
1782
1992
  /**
1783
- * Optional icon name for segment-style pills (`type="segment"` on parent `xpl-tabs`). Ignored for default tabs.
1993
+ * Optional leading icon name (from the Apollo icon set). Rendered in both underline (`type="tabs"`) and segment (`type="segment"`) tabs.
1784
1994
  */
1785
1995
  "icon"?: string;
1786
1996
  /**
1787
- * Icon position for segment-style pills.
1997
+ * Icon position relative to the label. Applies to both underline and segment tabs.
1788
1998
  * @default 'start'
1789
1999
  */
1790
2000
  "iconPosition": 'start' | 'end';
@@ -1807,6 +2017,9 @@ export namespace Components {
1807
2017
  */
1808
2018
  "variant": 'tabs' | 'segment';
1809
2019
  }
2020
+ /**
2021
+ * @since 2.3.8
2022
+ */
1810
2023
  interface XplTabPanel {
1811
2024
  /**
1812
2025
  * Whether the panel is selected
@@ -1818,6 +2031,9 @@ export namespace Components {
1818
2031
  */
1819
2032
  "target": string;
1820
2033
  }
2034
+ /**
2035
+ * @since 0.1.1
2036
+ */
1821
2037
  interface XplTable {
1822
2038
  /**
1823
2039
  * The header values for each column.
@@ -1839,7 +2055,7 @@ export namespace Components {
1839
2055
  * Toggles to show the sort button on each table head
1840
2056
  * @default false
1841
2057
  */
1842
- "isSortable"?: boolean;
2058
+ "isSortable": boolean;
1843
2059
  /**
1844
2060
  * Toggles a selectable checkbox for each row in the table
1845
2061
  */
@@ -1848,19 +2064,25 @@ export namespace Components {
1848
2064
  * The values for the input for each row when multiselect is activated.
1849
2065
  * @default []
1850
2066
  */
1851
- "selectedValues"?: string[];
2067
+ "selectedValues": string[];
1852
2068
  /**
1853
2069
  * Manually determined if the column is sortable
1854
2070
  * @default []
1855
2071
  */
1856
- "sortableColumns"?: boolean[];
2072
+ "sortableColumns": boolean[];
1857
2073
  /**
1858
2074
  * Toggles an optional styling of the background of each even row of the table body.
1859
2075
  */
1860
2076
  "striped"?: boolean;
1861
2077
  }
2078
+ /**
2079
+ * @since 1.0.0
2080
+ */
1862
2081
  interface XplTableHeader {
1863
2082
  }
2083
+ /**
2084
+ * @since 1.3.0
2085
+ */
1864
2086
  interface XplTableHeaderCell {
1865
2087
  /**
1866
2088
  * Icon to display in the cell. See [xpl-icon available icons](../xpl-icon/ICONS.md) for valid icon names.
@@ -1886,6 +2108,9 @@ export namespace Components {
1886
2108
  */
1887
2109
  "width"?: number;
1888
2110
  }
2111
+ /**
2112
+ * @since 2.3.8
2113
+ */
1889
2114
  interface XplTabs {
1890
2115
  /**
1891
2116
  * Disables the whole tab group (headings, mobile select, and segment pills).
@@ -1907,6 +2132,9 @@ export namespace Components {
1907
2132
  */
1908
2133
  "value": string;
1909
2134
  }
2135
+ /**
2136
+ * @since 0.4.0
2137
+ */
1910
2138
  interface XplTag {
1911
2139
  /**
1912
2140
  * Whether the tag is disabled
@@ -1933,32 +2161,44 @@ export namespace Components {
1933
2161
  */
1934
2162
  "tagId"?: string;
1935
2163
  }
2164
+ /**
2165
+ * @since 1.2.0
2166
+ */
1936
2167
  interface XplToast {
1937
2168
  /**
1938
- * @property {string} - The caption of the toast, limited to 85 characters
2169
+ * The caption of the toast, limited to 85 characters.
2170
+ * @default ''
1939
2171
  */
1940
2172
  "caption": string;
1941
2173
  /**
1942
- * @property {boolean} - Whether or not the toast is dismissible
2174
+ * Whether the toast shows a dismiss (close) button.
2175
+ * @deprecated Misspelled. Use `dismissible` instead. When both are set, `dismissable` wins so existing markup keeps working; `dismissable` is removed in the next major version.
2176
+ */
2177
+ "dismissable"?: boolean;
2178
+ /**
2179
+ * Whether the toast shows a dismiss (close) button.
1943
2180
  * @default true
1944
2181
  */
1945
- "dismissable": boolean;
2182
+ "dismissible": boolean;
1946
2183
  /**
1947
- * @property {boolean} - Whether or not to show the icon
2184
+ * Whether to show the leading sentiment icon.
1948
2185
  * @default true
1949
2186
  */
1950
2187
  "showIcon"?: boolean;
1951
2188
  /**
1952
- * @property {number} - The timeout for the toast to dismiss in ms, default 8 seconds
2189
+ * How long the toast waits before auto-dismissing, in ms. Set to `0` to disable auto-dismiss. Ignored when the `action` slot has content.
1953
2190
  * @default 8000
1954
2191
  */
1955
2192
  "timeout": number;
1956
2193
  /**
1957
- * @property {string} - The variant of the toast
2194
+ * The sentiment of the toast.
1958
2195
  * @default 'neutral'
1959
2196
  */
1960
2197
  "variant": 'neutral' | 'warning' | 'success';
1961
2198
  }
2199
+ /**
2200
+ * @since 0.3.0
2201
+ */
1962
2202
  interface XplToggle {
1963
2203
  /**
1964
2204
  * Whether the toggle is `on`
@@ -1990,6 +2230,9 @@ export namespace Components {
1990
2230
  */
1991
2231
  "variant"?: 'default' | 'small';
1992
2232
  }
2233
+ /**
2234
+ * @since 1.2.0
2235
+ */
1993
2236
  interface XplToolbar {
1994
2237
  /**
1995
2238
  * The number of selected items to display in the toolbar.
@@ -1997,6 +2240,9 @@ export namespace Components {
1997
2240
  */
1998
2241
  "selectedItemCount": number;
1999
2242
  }
2243
+ /**
2244
+ * @since 1.7.0
2245
+ */
2000
2246
  interface XplTooltip {
2001
2247
  /**
2002
2248
  * Hide the arrow
@@ -2025,6 +2271,7 @@ export namespace Components {
2025
2271
  * (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
2026
2272
  * Optional **`nav-control`** and **`navOpen`**. **`left-aside`** uses **`role="list"`** for primary **`xpl-top-nav-item`** rows (**`role="listitem"`** on each item host). The built-in **`xpl-top-nav__brand`** item omits **`listitem`** (it is not a child of that list). **`label`** maps to **`nav`** **`aria-label`**. Opening state is internal (not a prop) — use **`navOpen`** and host **`xpl-top-nav--open`** for styling.
2027
2273
  * **Escape:** With **`nav-control`**, **Escape** closes the mobile drawer and emits **`navOpen`** **`false`** (skips while **any** descendant **`xpl-popover`** is open — detected from each popover’s inner **`.xpl-popover--is-open`** marker — or when a **`xpl-top-nav-item`** dropdown is open — capture/bubble order). Focus returns to the nav toggle after the drawer closes (**Escape** or second toggle click).
2274
+ * **Outside click:** With **`nav-control`**, a click outside the drawer panel (**`.xpl-top-nav__left-primary`**) also closes it and emits **`navOpen`** **`false`** (document **capture**, mirroring **`xpl-top-nav-item`**); it skips clicks on the hamburger toggle and while a descendant **`xpl-popover`** is open, and does not move focus.
2028
2275
  * **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
2029
2276
  * on **`ownerDocument`** so nested dropdowns close before the drawer.
2030
2277
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
@@ -2041,6 +2288,7 @@ export namespace Components {
2041
2288
  * **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
2042
2289
  * **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
2043
2290
  * and emits **`navOpen(false)`** so the two layers do not stack.
2291
+ * @since 2.7.0
2044
2292
  */
2045
2293
  interface XplTopNav {
2046
2294
  /**
@@ -2069,16 +2317,19 @@ export namespace Components {
2069
2317
  "navControl"?: boolean;
2070
2318
  }
2071
2319
  /**
2072
- * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
2073
- * participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
2074
- * **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
2075
- * under **`xpl-nav-header-menu`**. That flag is
2320
+ * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. The host uses
2321
+ * **`role="listitem"`** when the row participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on
2322
+ * **`xpl-top-nav`** (list host is **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of
2323
+ * **`xpl-top-nav`**), or default-slot rows under **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. That flag is
2076
2324
  * kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
2077
2325
  * on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
2078
2326
  * without a full reconnect still re-sync. The internal
2079
2327
  * **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
2080
2328
  * as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
2081
2329
  * panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
2330
+ * **This component does triple duty:** a plain bar item, a dropdown trigger (**`slot="dropdown"`** present), and a
2331
+ * dropdown/menu **row** (nested inside **`xpl-nav-header-menu`** or **`xpl-top-nav-menu`**). The **`description`** prop
2332
+ * only applies in the row context — bar items and triggers do not show it in Figma.
2082
2333
  * **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
2083
2334
  * custom trigger content — the component renders the inner wrapper and BEM elements.
2084
2335
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
@@ -2090,12 +2341,20 @@ export namespace Components {
2090
2341
  * @default false
2091
2342
  */
2092
2343
  "active": boolean;
2344
+ /**
2345
+ * No-op when there is no **`slot="dropdown"`** panel to open.
2346
+ */
2347
+ "closeMenu": () => Promise<void>;
2348
+ /**
2349
+ * Optional description line shown below **`label`** (row context only, e.g. inside **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**). Ignored when **`label`** is not set.
2350
+ */
2351
+ "description"?: string;
2093
2352
  /**
2094
2353
  * If set without **`slot="dropdown"`**, the inner control renders as a native **`<a href>`** (link mode).
2095
2354
  */
2096
2355
  "href"?: string;
2097
2356
  /**
2098
- * Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set).
2357
+ * Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set). Ignored when **`slot="leading-icon"`** content is present.
2099
2358
  * @default ''
2100
2359
  */
2101
2360
  "icon": string;
@@ -2107,12 +2366,58 @@ export namespace Components {
2107
2366
  * Text label. If omitted, use the default slot for custom trigger content. Long labels use **`text-ellipsis`** on **`.xpl-top-nav-item__label`** (see `top-nav.css`); **`title`** is set to the full string for hover tooltips when the visual line clips.
2108
2367
  */
2109
2368
  "label"?: string;
2369
+ /**
2370
+ * Whether the **`slot="dropdown"`** panel is open. Reflected to the **`open`** attribute so consumers can drive it (controlled) or read it back (uncontrolled, toggled internally on click / hover / keyboard activation). Prefer **`openMenu()`** / **`closeMenu()`** / **`toggleMenu()`** over setting this directly from event handlers.
2371
+ * @default false
2372
+ */
2373
+ "open": boolean;
2374
+ /**
2375
+ * No-op when there is no **`slot="dropdown"`** panel to open.
2376
+ */
2377
+ "openMenu": () => Promise<void>;
2378
+ /**
2379
+ * How the **`slot="dropdown"`** panel opens. **`hover`** is gated on **`TOP_NAV_ITEM_HOVER_OPEN_MQ`** (hover-capable, fine pointer, **`md`** and up) — below that, or on touch / coarse-pointer devices, **`hover`** falls back to click/tap. Keyboard activation (Enter / Space) always toggles regardless of **`openMode`**.
2380
+ * @default 'click'
2381
+ */
2382
+ "openMode": 'click' | 'hover';
2110
2383
  /**
2111
2384
  * When true, sets **`aria-current="page"`** and selected styling.
2112
2385
  * @default false
2113
2386
  */
2114
2387
  "selected": boolean;
2388
+ /**
2389
+ * No-op when there is no **`slot="dropdown"`** panel to open.
2390
+ */
2391
+ "toggleMenu": () => Promise<void>;
2392
+ }
2393
+ /**
2394
+ * Thin grouping container for **`xpl-top-nav-item`** rows — the panel content for a desktop flyout
2395
+ * (**`slot="dropdown"`** on the parent **`xpl-top-nav-item`**) and, on small screens, the **mobile
2396
+ * cascade**: the same markup drills in to a **Level 2** view in place, with an auto-rendered **back
2397
+ * row** (leading **`chevron-left`** + this component's **`label`**) as the first row. Tapping the back
2398
+ * row closes the parent trigger's dropdown (**`closeMenu()`**), returning to **Level 1** and restoring
2399
+ * focus to the parent trigger. No item logic otherwise lives here — row behavior (icons, description,
2400
+ * links, nested dropdowns) is entirely **`xpl-top-nav-item`**.
2401
+ * **One authoring markup, two renderings:** consumers write this once; **`isMobileCascade`** (synced
2402
+ * from **`TOP_NAV_MOBILE_MQ`**) decides whether the back row renders. Desktop never sees it — the
2403
+ * flyout is a single level of links (see `xpl-top-nav-item`'s cascade-depth notes).
2404
+ * **Panel chrome** is shared with **`xpl-nav-header-menu`** (the account menu): width
2405
+ * (**`--xpl-top-nav-panel-width`**), surface, shadow, radius, and vertical padding all come from the
2406
+ * same selector in `top-nav.css` so the desktop flyout, mobile cascade, and account menu read as one
2407
+ * visual family.
2408
+ * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens
2409
+ * resolve to dark-mode values even when the page root is light (consistent with the rest of the
2410
+ * **`xpl-top-nav`** family).
2411
+ */
2412
+ interface XplTopNavMenu {
2413
+ /**
2414
+ * Accessible name for the list (**`aria-label`** on the host) and the label shown in the mobile cascade back row when drilling back out of this group.
2415
+ */
2416
+ "label"?: string;
2115
2417
  }
2418
+ /**
2419
+ * @since 0.1.1
2420
+ */
2116
2421
  interface XplUtilityBar {
2117
2422
  /**
2118
2423
  * @property {boolean} - Optional property that defines whether or not the main nav is open at startup.
@@ -2220,10 +2525,18 @@ export interface XplSideNavCustomEvent<T> extends CustomEvent<T> {
2220
2525
  detail: T;
2221
2526
  target: HTMLXplSideNavElement;
2222
2527
  }
2528
+ export interface XplSideNavHeaderItemCustomEvent<T> extends CustomEvent<T> {
2529
+ detail: T;
2530
+ target: HTMLXplSideNavHeaderItemElement;
2531
+ }
2223
2532
  export interface XplSideNavItemCustomEvent<T> extends CustomEvent<T> {
2224
2533
  detail: T;
2225
2534
  target: HTMLXplSideNavItemElement;
2226
2535
  }
2536
+ export interface XplSideNavSectionCustomEvent<T> extends CustomEvent<T> {
2537
+ detail: T;
2538
+ target: HTMLXplSideNavSectionElement;
2539
+ }
2227
2540
  export interface XplSlideoutCustomEvent<T> extends CustomEvent<T> {
2228
2541
  detail: T;
2229
2542
  target: HTMLXplSlideoutElement;
@@ -2269,30 +2582,45 @@ export interface XplUtilityBarCustomEvent<T> extends CustomEvent<T> {
2269
2582
  target: HTMLXplUtilityBarElement;
2270
2583
  }
2271
2584
  declare global {
2585
+ /**
2586
+ * @since 2.0.0
2587
+ */
2272
2588
  interface HTMLXplAccordionElement extends Components.XplAccordion, HTMLStencilElement {
2273
2589
  }
2274
2590
  var HTMLXplAccordionElement: {
2275
2591
  prototype: HTMLXplAccordionElement;
2276
2592
  new (): HTMLXplAccordionElement;
2277
2593
  };
2594
+ /**
2595
+ * @since 0.5.0
2596
+ */
2278
2597
  interface HTMLXplApplicationShellElement extends Components.XplApplicationShell, HTMLStencilElement {
2279
2598
  }
2280
2599
  var HTMLXplApplicationShellElement: {
2281
2600
  prototype: HTMLXplApplicationShellElement;
2282
2601
  new (): HTMLXplApplicationShellElement;
2283
2602
  };
2603
+ /**
2604
+ * @since 0.1.1
2605
+ */
2284
2606
  interface HTMLXplAvatarElement extends Components.XplAvatar, HTMLStencilElement {
2285
2607
  }
2286
2608
  var HTMLXplAvatarElement: {
2287
2609
  prototype: HTMLXplAvatarElement;
2288
2610
  new (): HTMLXplAvatarElement;
2289
2611
  };
2612
+ /**
2613
+ * @since 0.1.2
2614
+ */
2290
2615
  interface HTMLXplBackdropElement extends Components.XplBackdrop, HTMLStencilElement {
2291
2616
  }
2292
2617
  var HTMLXplBackdropElement: {
2293
2618
  prototype: HTMLXplBackdropElement;
2294
2619
  new (): HTMLXplBackdropElement;
2295
2620
  };
2621
+ /**
2622
+ * @since 0.1.1
2623
+ */
2296
2624
  interface HTMLXplBadgeElement extends Components.XplBadge, HTMLStencilElement {
2297
2625
  }
2298
2626
  var HTMLXplBadgeElement: {
@@ -2304,6 +2632,9 @@ declare global {
2304
2632
  "dismiss": void;
2305
2633
  "secondaryAction": void;
2306
2634
  }
2635
+ /**
2636
+ * @since 2.6.0
2637
+ */
2307
2638
  interface HTMLXplBannerElement extends Components.XplBanner, HTMLStencilElement {
2308
2639
  addEventListener<K extends keyof HTMLXplBannerElementEventMap>(type: K, listener: (this: HTMLXplBannerElement, ev: XplBannerCustomEvent<HTMLXplBannerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2309
2640
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2330,6 +2661,9 @@ declare global {
2330
2661
  prototype: HTMLXplBreadcrumbsElement;
2331
2662
  new (): HTMLXplBreadcrumbsElement;
2332
2663
  };
2664
+ /**
2665
+ * @since 0.1.1
2666
+ */
2333
2667
  interface HTMLXplButtonElement extends Components.XplButton, HTMLStencilElement {
2334
2668
  }
2335
2669
  var HTMLXplButtonElement: {
@@ -2341,6 +2675,9 @@ declare global {
2341
2675
  "clickSecondary": any;
2342
2676
  "clickTertiary": any;
2343
2677
  }
2678
+ /**
2679
+ * @since 0.4.0
2680
+ */
2344
2681
  interface HTMLXplButtonRowElement extends Components.XplButtonRow, HTMLStencilElement {
2345
2682
  addEventListener<K extends keyof HTMLXplButtonRowElementEventMap>(type: K, listener: (this: HTMLXplButtonRowElement, ev: XplButtonRowCustomEvent<HTMLXplButtonRowElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2346
2683
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2358,6 +2695,9 @@ declare global {
2358
2695
  interface HTMLXplCalendarElementEventMap {
2359
2696
  "dateSelected": string | string[];
2360
2697
  }
2698
+ /**
2699
+ * @since 2.0.0
2700
+ */
2361
2701
  interface HTMLXplCalendarElement extends Components.XplCalendar, HTMLStencilElement {
2362
2702
  addEventListener<K extends keyof HTMLXplCalendarElementEventMap>(type: K, listener: (this: HTMLXplCalendarElement, ev: XplCalendarCustomEvent<HTMLXplCalendarElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2363
2703
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2375,6 +2715,9 @@ declare global {
2375
2715
  interface HTMLXplCheckboxElementEventMap {
2376
2716
  "checkboxChange": boolean;
2377
2717
  }
2718
+ /**
2719
+ * @since 0.1.1
2720
+ */
2378
2721
  interface HTMLXplCheckboxElement extends Components.XplCheckbox, HTMLStencilElement {
2379
2722
  addEventListener<K extends keyof HTMLXplCheckboxElementEventMap>(type: K, listener: (this: HTMLXplCheckboxElement, ev: XplCheckboxCustomEvent<HTMLXplCheckboxElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2380
2723
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2393,6 +2736,9 @@ declare global {
2393
2736
  "choicelistChange": boolean[];
2394
2737
  "choicelistValueChange": string | boolean | (string | boolean)[];
2395
2738
  }
2739
+ /**
2740
+ * @since 0.1.1
2741
+ */
2396
2742
  interface HTMLXplChoicelistElement extends Components.XplChoicelist, HTMLStencilElement {
2397
2743
  addEventListener<K extends keyof HTMLXplChoicelistElementEventMap>(type: K, listener: (this: HTMLXplChoicelistElement, ev: XplChoicelistCustomEvent<HTMLXplChoicelistElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2398
2744
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2407,24 +2753,36 @@ declare global {
2407
2753
  prototype: HTMLXplChoicelistElement;
2408
2754
  new (): HTMLXplChoicelistElement;
2409
2755
  };
2756
+ /**
2757
+ * @since 0.1.2
2758
+ */
2410
2759
  interface HTMLXplContentAreaElement extends Components.XplContentArea, HTMLStencilElement {
2411
2760
  }
2412
2761
  var HTMLXplContentAreaElement: {
2413
2762
  prototype: HTMLXplContentAreaElement;
2414
2763
  new (): HTMLXplContentAreaElement;
2415
2764
  };
2765
+ /**
2766
+ * @since 1.0.0
2767
+ */
2416
2768
  interface HTMLXplDashboardElement extends Components.XplDashboard, HTMLStencilElement {
2417
2769
  }
2418
2770
  var HTMLXplDashboardElement: {
2419
2771
  prototype: HTMLXplDashboardElement;
2420
2772
  new (): HTMLXplDashboardElement;
2421
2773
  };
2774
+ /**
2775
+ * @since 1.0.0
2776
+ */
2422
2777
  interface HTMLXplDataCardElement extends Components.XplDataCard, HTMLStencilElement {
2423
2778
  }
2424
2779
  var HTMLXplDataCardElement: {
2425
2780
  prototype: HTMLXplDataCardElement;
2426
2781
  new (): HTMLXplDataCardElement;
2427
2782
  };
2783
+ /**
2784
+ * @since 0.3.0
2785
+ */
2428
2786
  interface HTMLXplDividerElement extends Components.XplDivider, HTMLStencilElement {
2429
2787
  }
2430
2788
  var HTMLXplDividerElement: {
@@ -2434,6 +2792,9 @@ declare global {
2434
2792
  interface HTMLXplDropdownElementEventMap {
2435
2793
  "isOpenChange": boolean;
2436
2794
  }
2795
+ /**
2796
+ * @since 0.4.0
2797
+ */
2437
2798
  interface HTMLXplDropdownElement extends Components.XplDropdown, HTMLStencilElement {
2438
2799
  addEventListener<K extends keyof HTMLXplDropdownElementEventMap>(type: K, listener: (this: HTMLXplDropdownElement, ev: XplDropdownCustomEvent<HTMLXplDropdownElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2439
2800
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2469,6 +2830,9 @@ declare global {
2469
2830
  interface HTMLXplDynamicTableElementEventMap {
2470
2831
  "selectedItemCountChange": string[];
2471
2832
  }
2833
+ /**
2834
+ * @since 1.4.0
2835
+ */
2472
2836
  interface HTMLXplDynamicTableElement extends Components.XplDynamicTable, HTMLStencilElement {
2473
2837
  addEventListener<K extends keyof HTMLXplDynamicTableElementEventMap>(type: K, listener: (this: HTMLXplDynamicTableElement, ev: XplDynamicTableCustomEvent<HTMLXplDynamicTableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2474
2838
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2483,36 +2847,54 @@ declare global {
2483
2847
  prototype: HTMLXplDynamicTableElement;
2484
2848
  new (): HTMLXplDynamicTableElement;
2485
2849
  };
2850
+ /**
2851
+ * @since 1.3.0
2852
+ */
2486
2853
  interface HTMLXplDynamicTableCellElement extends Components.XplDynamicTableCell, HTMLStencilElement {
2487
2854
  }
2488
2855
  var HTMLXplDynamicTableCellElement: {
2489
2856
  prototype: HTMLXplDynamicTableCellElement;
2490
2857
  new (): HTMLXplDynamicTableCellElement;
2491
2858
  };
2859
+ /**
2860
+ * @since 1.3.0
2861
+ */
2492
2862
  interface HTMLXplDynamicTableRowElement extends Components.XplDynamicTableRow, HTMLStencilElement {
2493
2863
  }
2494
2864
  var HTMLXplDynamicTableRowElement: {
2495
2865
  prototype: HTMLXplDynamicTableRowElement;
2496
2866
  new (): HTMLXplDynamicTableRowElement;
2497
2867
  };
2868
+ /**
2869
+ * @since 0.4.0
2870
+ */
2498
2871
  interface HTMLXplGridElement extends Components.XplGrid, HTMLStencilElement {
2499
2872
  }
2500
2873
  var HTMLXplGridElement: {
2501
2874
  prototype: HTMLXplGridElement;
2502
2875
  new (): HTMLXplGridElement;
2503
2876
  };
2877
+ /**
2878
+ * @since 0.4.0
2879
+ */
2504
2880
  interface HTMLXplGridItemElement extends Components.XplGridItem, HTMLStencilElement {
2505
2881
  }
2506
2882
  var HTMLXplGridItemElement: {
2507
2883
  prototype: HTMLXplGridItemElement;
2508
2884
  new (): HTMLXplGridItemElement;
2509
2885
  };
2886
+ /**
2887
+ * @since 1.2.0
2888
+ */
2510
2889
  interface HTMLXplHeaderAccordionElement extends Components.XplHeaderAccordion, HTMLStencilElement {
2511
2890
  }
2512
2891
  var HTMLXplHeaderAccordionElement: {
2513
2892
  prototype: HTMLXplHeaderAccordionElement;
2514
2893
  new (): HTMLXplHeaderAccordionElement;
2515
2894
  };
2895
+ /**
2896
+ * @since 1.0.0
2897
+ */
2516
2898
  interface HTMLXplIconElement extends Components.XplIcon, HTMLStencilElement {
2517
2899
  }
2518
2900
  var HTMLXplIconElement: {
@@ -2526,6 +2908,9 @@ declare global {
2526
2908
  "search": string;
2527
2909
  "valueChange": string;
2528
2910
  }
2911
+ /**
2912
+ * @since 0.3.0
2913
+ */
2529
2914
  interface HTMLXplInputElement extends Components.XplInput, HTMLStencilElement {
2530
2915
  addEventListener<K extends keyof HTMLXplInputElementEventMap>(type: K, listener: (this: HTMLXplInputElement, ev: XplInputCustomEvent<HTMLXplInputElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2531
2916
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2657,6 +3042,9 @@ declare global {
2657
3042
  prototype: HTMLXplInputTimeElement;
2658
3043
  new (): HTMLXplInputTimeElement;
2659
3044
  };
3045
+ /**
3046
+ * @since 1.9.1
3047
+ */
2660
3048
  interface HTMLXplLargeCardElement extends Components.XplLargeCard, HTMLStencilElement {
2661
3049
  }
2662
3050
  var HTMLXplLargeCardElement: {
@@ -2667,6 +3055,9 @@ declare global {
2667
3055
  "itemSelect": { itemId?: string };
2668
3056
  "orderChange": XplListOrderChangeDetail;
2669
3057
  }
3058
+ /**
3059
+ * @since 0.4.0
3060
+ */
2670
3061
  interface HTMLXplListElement extends Components.XplList, HTMLStencilElement {
2671
3062
  addEventListener<K extends keyof HTMLXplListElementEventMap>(type: K, listener: (this: HTMLXplListElement, ev: XplListCustomEvent<HTMLXplListElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2672
3063
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2704,6 +3095,9 @@ declare global {
2704
3095
  interface HTMLXplMainNavElementEventMap {
2705
3096
  "navWidth": string;
2706
3097
  }
3098
+ /**
3099
+ * @since 0.1.2
3100
+ */
2707
3101
  interface HTMLXplMainNavElement extends Components.XplMainNav, HTMLStencilElement {
2708
3102
  addEventListener<K extends keyof HTMLXplMainNavElementEventMap>(type: K, listener: (this: HTMLXplMainNavElement, ev: XplMainNavCustomEvent<HTMLXplMainNavElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2709
3103
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2721,6 +3115,9 @@ declare global {
2721
3115
  interface HTMLXplModalElementEventMap {
2722
3116
  "modalClosed": void;
2723
3117
  }
3118
+ /**
3119
+ * @since 1.1.0
3120
+ */
2724
3121
  interface HTMLXplModalElement extends Components.XplModal, HTMLStencilElement {
2725
3122
  addEventListener<K extends keyof HTMLXplModalElementEventMap>(type: K, listener: (this: HTMLXplModalElement, ev: XplModalCustomEvent<HTMLXplModalElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2726
3123
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2762,6 +3159,9 @@ declare global {
2762
3159
  interface HTMLXplNavItemElementEventMap {
2763
3160
  "navOpen": boolean;
2764
3161
  }
3162
+ /**
3163
+ * @since 0.1.2
3164
+ */
2765
3165
  interface HTMLXplNavItemElement extends Components.XplNavItem, HTMLStencilElement {
2766
3166
  addEventListener<K extends keyof HTMLXplNavItemElementEventMap>(type: K, listener: (this: HTMLXplNavItemElement, ev: XplNavItemCustomEvent<HTMLXplNavItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2767
3167
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2780,6 +3180,9 @@ declare global {
2780
3180
  "pageChange": number;
2781
3181
  "rowsPerPageChange": number;
2782
3182
  }
3183
+ /**
3184
+ * @since 0.1.1
3185
+ */
2783
3186
  interface HTMLXplPaginationElement extends Components.XplPagination, HTMLStencilElement {
2784
3187
  addEventListener<K extends keyof HTMLXplPaginationElementEventMap>(type: K, listener: (this: HTMLXplPaginationElement, ev: XplPaginationCustomEvent<HTMLXplPaginationElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2785
3188
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2797,6 +3200,7 @@ declare global {
2797
3200
  /**
2798
3201
  * A stateless container that defines a section on a page and can house any
2799
3202
  * type of content. Panels are not dismissible and may contain a top accent.
3203
+ * @since 2.6.0
2800
3204
  */
2801
3205
  interface HTMLXplPanelElement extends Components.XplPanel, HTMLStencilElement {
2802
3206
  }
@@ -2807,6 +3211,9 @@ declare global {
2807
3211
  interface HTMLXplPopoverElementEventMap {
2808
3212
  "isOpenChange": boolean;
2809
3213
  }
3214
+ /**
3215
+ * @since 2.0.0
3216
+ */
2810
3217
  interface HTMLXplPopoverElement extends Components.XplPopover, HTMLStencilElement {
2811
3218
  addEventListener<K extends keyof HTMLXplPopoverElementEventMap>(type: K, listener: (this: HTMLXplPopoverElement, ev: XplPopoverCustomEvent<HTMLXplPopoverElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2812
3219
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2821,12 +3228,18 @@ declare global {
2821
3228
  prototype: HTMLXplPopoverElement;
2822
3229
  new (): HTMLXplPopoverElement;
2823
3230
  };
3231
+ /**
3232
+ * @since 2.6.0
3233
+ */
2824
3234
  interface HTMLXplProgressBarElement extends Components.XplProgressBar, HTMLStencilElement {
2825
3235
  }
2826
3236
  var HTMLXplProgressBarElement: {
2827
3237
  prototype: HTMLXplProgressBarElement;
2828
3238
  new (): HTMLXplProgressBarElement;
2829
3239
  };
3240
+ /**
3241
+ * @since 2.7.0
3242
+ */
2830
3243
  interface HTMLXplProgressIndicatorElement extends Components.XplProgressIndicator, HTMLStencilElement {
2831
3244
  }
2832
3245
  var HTMLXplProgressIndicatorElement: {
@@ -2836,6 +3249,9 @@ declare global {
2836
3249
  interface HTMLXplRadioElementEventMap {
2837
3250
  "radioChange": string | boolean;
2838
3251
  }
3252
+ /**
3253
+ * @since 0.1.1
3254
+ */
2839
3255
  interface HTMLXplRadioElement extends Components.XplRadio, HTMLStencilElement {
2840
3256
  addEventListener<K extends keyof HTMLXplRadioElementEventMap>(type: K, listener: (this: HTMLXplRadioElement, ev: XplRadioCustomEvent<HTMLXplRadioElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2841
3257
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2850,6 +3266,9 @@ declare global {
2850
3266
  prototype: HTMLXplRadioElement;
2851
3267
  new (): HTMLXplRadioElement;
2852
3268
  };
3269
+ /**
3270
+ * @since 0.3.0
3271
+ */
2853
3272
  interface HTMLXplSecondaryNavElement extends Components.XplSecondaryNav, HTMLStencilElement {
2854
3273
  }
2855
3274
  var HTMLXplSecondaryNavElement: {
@@ -2865,6 +3284,9 @@ declare global {
2865
3284
  nextState: boolean;
2866
3285
  };
2867
3286
  }
3287
+ /**
3288
+ * @since 0.4.0
3289
+ */
2868
3290
  interface HTMLXplSelectElement extends Components.XplSelect, HTMLStencilElement {
2869
3291
  addEventListener<K extends keyof HTMLXplSelectElementEventMap>(type: K, listener: (this: HTMLXplSelectElement, ev: XplSelectCustomEvent<HTMLXplSelectElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2870
3292
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2883,8 +3305,8 @@ declare global {
2883
3305
  "openChange": boolean;
2884
3306
  }
2885
3307
  /**
2886
- * Slot-based sidebar for app navigation: a scrollable main `section` and a fixed
2887
- * `nav-footer`. Compose with `xpl-side-nav-item` for rows.
3308
+ * Slot-based sidebar for app navigation: a scrollable `nav-header` + `section`
3309
+ * area and a fixed `nav-footer`. Compose with `xpl-side-nav-item` for rows.
2888
3310
  * **Mobile (v2):** below the Tailwind `md` breakpoint, the sidebar collapses to a
2889
3311
  * ~56px top bar with a toggle button (`sidebar-left-show` / `sidebar-left-hide`).
2890
3312
  * Activating the toggle opens a drawer containing the `section` + `nav-footer`
@@ -2896,6 +3318,7 @@ declare global {
2896
3318
  * the `openChange` event, and the `toggle()` / `setOpen()` methods.
2897
3319
  * **v2 breaking change (beta):** consumers who wrapped their own mobile toggle
2898
3320
  * around `xpl-side-nav` should remove it — the toggle and drawer are now built in.
3321
+ * @since 2.6.0
2899
3322
  */
2900
3323
  interface HTMLXplSideNavElement extends Components.XplSideNav, HTMLStencilElement {
2901
3324
  addEventListener<K extends keyof HTMLXplSideNavElementEventMap>(type: K, listener: (this: HTMLXplSideNavElement, ev: XplSideNavCustomEvent<HTMLXplSideNavElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2911,9 +3334,49 @@ declare global {
2911
3334
  prototype: HTMLXplSideNavElement;
2912
3335
  new (): HTMLXplSideNavElement;
2913
3336
  };
3337
+ interface HTMLXplSideNavHeaderItemElementEventMap {
3338
+ "navigate": void;
3339
+ }
3340
+ /**
3341
+ * Header row for `xpl-side-nav`'s `nav-header` slot (Figma `<navHeaderItem>`,
3342
+ * node `51299-9007`). Two types:
3343
+ * - **`product-label` (default)** — a non-interactive `<div>` row that shows the
3344
+ * current product/area name in a subdued color. No click behavior.
3345
+ * - **`sub-account`** — an interactive `<button>` row (e.g. a location / account
3346
+ * switcher). Emits `navigate` on activation (pointer click or keyboard); the
3347
+ * consumer wires this to open a modal or other entity-switching experience.
3348
+ * When no `slot="trailing"` content is provided, an auto chevron
3349
+ * (`chevron-expand-y`, a static dual-arrow glyph — no rotation) renders by default.
3350
+ * Both types support `slot="leading"` / `slot="trailing"` (the `icon` prop is a
3351
+ * convenience shorthand for `slot="leading"`, same as `xpl-side-nav-item`) so they
3352
+ * can scale to future uses. Unlike `xpl-side-nav-item`, the leading/trailing
3353
+ * columns are NOT unconditionally reserved — they only render when there is
3354
+ * content, matching the Figma variants where the leading icon is an optional toggle.
3355
+ * **Note on the `sub-account` hover / selected visual:** the interactive row
3356
+ * mirrors `xpl-side-nav-item` — the hover and selected backgrounds fill a single
3357
+ * `__content` pill that wraps the leading icon + label + trailing chevron, with
3358
+ * an 8px (`--xpl-border-radius-default`) radius. The pill insets 8px from the nav
3359
+ * edge (an 8px gutter on the button) so it lines up with the item rows below it,
3360
+ * and hover/selected therefore highlight the whole row content rather than a
3361
+ * partial fragment.
3362
+ */
3363
+ interface HTMLXplSideNavHeaderItemElement extends Components.XplSideNavHeaderItem, HTMLStencilElement {
3364
+ addEventListener<K extends keyof HTMLXplSideNavHeaderItemElementEventMap>(type: K, listener: (this: HTMLXplSideNavHeaderItemElement, ev: XplSideNavHeaderItemCustomEvent<HTMLXplSideNavHeaderItemElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3365
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3366
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3367
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3368
+ removeEventListener<K extends keyof HTMLXplSideNavHeaderItemElementEventMap>(type: K, listener: (this: HTMLXplSideNavHeaderItemElement, ev: XplSideNavHeaderItemCustomEvent<HTMLXplSideNavHeaderItemElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3369
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3370
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3371
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3372
+ }
3373
+ var HTMLXplSideNavHeaderItemElement: {
3374
+ prototype: HTMLXplSideNavHeaderItemElement;
3375
+ new (): HTMLXplSideNavHeaderItemElement;
3376
+ };
2914
3377
  interface HTMLXplSideNavItemElementEventMap {
2915
3378
  "expandedChange": boolean;
2916
- "navClick": void;
3379
+ "navigate": void;
2917
3380
  }
2918
3381
  /**
2919
3382
  * Navigation row for `xpl-side-nav`. Renders a button (default) or a slot-only
@@ -2953,7 +3416,43 @@ declare global {
2953
3416
  prototype: HTMLXplSideNavItemElement;
2954
3417
  new (): HTMLXplSideNavItemElement;
2955
3418
  };
2956
- interface HTMLXplSkeletonElement extends Components.XplSkeleton, HTMLStencilElement {
3419
+ interface HTMLXplSideNavSectionElementEventMap {
3420
+ "expandedChange": boolean;
3421
+ }
3422
+ /**
3423
+ * Grouping / accordion header for `xpl-side-nav`. Wraps nested `xpl-side-nav-item`
3424
+ * (and optional divider separators) elements in the default slot and collapses
3425
+ * them as a unit.
3426
+ * Two variants:
3427
+ * - **Collapsible (default, `collapsible=true`)** — a `<button>` header with a
3428
+ * chevron (`chevron-right` collapsed / `chevron-down` expanded, no rotation —
3429
+ * the glyph itself swaps). Click toggles `expanded` and emits `expandedChange`.
3430
+ * - **Static (`collapsible=false`)** — a non-interactive title row with no chevron;
3431
+ * children are always shown. Used for a static section label (e.g. a future
3432
+ * product-name / location-changer header).
3433
+ * Unlike `xpl-side-nav-item[has-children]`, section children are **not indented**
3434
+ * — they align with top-level items at the same leading-icon column.
3435
+ * `slot="badge"` renders an optional badge (e.g. `xpl-badge`) in the header title
3436
+ * row. The wrapper is suppressed when the slot is empty.
3437
+ */
3438
+ interface HTMLXplSideNavSectionElement extends Components.XplSideNavSection, HTMLStencilElement {
3439
+ addEventListener<K extends keyof HTMLXplSideNavSectionElementEventMap>(type: K, listener: (this: HTMLXplSideNavSectionElement, ev: XplSideNavSectionCustomEvent<HTMLXplSideNavSectionElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3440
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3441
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
3442
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
3443
+ removeEventListener<K extends keyof HTMLXplSideNavSectionElementEventMap>(type: K, listener: (this: HTMLXplSideNavSectionElement, ev: XplSideNavSectionCustomEvent<HTMLXplSideNavSectionElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
3444
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3445
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
3446
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
3447
+ }
3448
+ var HTMLXplSideNavSectionElement: {
3449
+ prototype: HTMLXplSideNavSectionElement;
3450
+ new (): HTMLXplSideNavSectionElement;
3451
+ };
3452
+ /**
3453
+ * @since 2.3.6
3454
+ */
3455
+ interface HTMLXplSkeletonElement extends Components.XplSkeleton, HTMLStencilElement {
2957
3456
  }
2958
3457
  var HTMLXplSkeletonElement: {
2959
3458
  prototype: HTMLXplSkeletonElement;
@@ -2962,6 +3461,9 @@ declare global {
2962
3461
  interface HTMLXplSlideoutElementEventMap {
2963
3462
  "isOpenChange": boolean;
2964
3463
  }
3464
+ /**
3465
+ * @since 1.1.0
3466
+ */
2965
3467
  interface HTMLXplSlideoutElement extends Components.XplSlideout, HTMLStencilElement {
2966
3468
  addEventListener<K extends keyof HTMLXplSlideoutElementEventMap>(type: K, listener: (this: HTMLXplSlideoutElement, ev: XplSlideoutCustomEvent<HTMLXplSlideoutElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2967
3469
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2982,6 +3484,9 @@ declare global {
2982
3484
  "secondaryAction": void;
2983
3485
  "targetClick": void;
2984
3486
  }
3487
+ /**
3488
+ * @since 2.7.0
3489
+ */
2985
3490
  interface HTMLXplSpotlightElement extends Components.XplSpotlight, HTMLStencilElement {
2986
3491
  addEventListener<K extends keyof HTMLXplSpotlightElementEventMap>(type: K, listener: (this: HTMLXplSpotlightElement, ev: XplSpotlightCustomEvent<HTMLXplSpotlightElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
2987
3492
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -2999,6 +3504,9 @@ declare global {
2999
3504
  interface HTMLXplTabElementEventMap {
3000
3505
  "tabChange": string;
3001
3506
  }
3507
+ /**
3508
+ * @since 2.3.8
3509
+ */
3002
3510
  interface HTMLXplTabElement extends Components.XplTab, HTMLStencilElement {
3003
3511
  addEventListener<K extends keyof HTMLXplTabElementEventMap>(type: K, listener: (this: HTMLXplTabElement, ev: XplTabCustomEvent<HTMLXplTabElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3004
3512
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3013,6 +3521,9 @@ declare global {
3013
3521
  prototype: HTMLXplTabElement;
3014
3522
  new (): HTMLXplTabElement;
3015
3523
  };
3524
+ /**
3525
+ * @since 2.3.8
3526
+ */
3016
3527
  interface HTMLXplTabPanelElement extends Components.XplTabPanel, HTMLStencilElement {
3017
3528
  }
3018
3529
  var HTMLXplTabPanelElement: {
@@ -3024,9 +3535,12 @@ declare global {
3024
3535
  "sortChanged": {
3025
3536
  colNum: number;
3026
3537
  colName: string;
3027
- sortTypeArr: string[];
3538
+ sortTypeArr: ('asc' | 'desc' | null)[];
3028
3539
  };
3029
3540
  }
3541
+ /**
3542
+ * @since 0.1.1
3543
+ */
3030
3544
  interface HTMLXplTableElement extends Components.XplTable, HTMLStencilElement {
3031
3545
  addEventListener<K extends keyof HTMLXplTableElementEventMap>(type: K, listener: (this: HTMLXplTableElement, ev: XplTableCustomEvent<HTMLXplTableElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3032
3546
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3041,6 +3555,9 @@ declare global {
3041
3555
  prototype: HTMLXplTableElement;
3042
3556
  new (): HTMLXplTableElement;
3043
3557
  };
3558
+ /**
3559
+ * @since 1.0.0
3560
+ */
3044
3561
  interface HTMLXplTableHeaderElement extends Components.XplTableHeader, HTMLStencilElement {
3045
3562
  }
3046
3563
  var HTMLXplTableHeaderElement: {
@@ -3050,6 +3567,9 @@ declare global {
3050
3567
  interface HTMLXplTableHeaderCellElementEventMap {
3051
3568
  "sortChanged": 'asc' | 'desc' | 'none';
3052
3569
  }
3570
+ /**
3571
+ * @since 1.3.0
3572
+ */
3053
3573
  interface HTMLXplTableHeaderCellElement extends Components.XplTableHeaderCell, HTMLStencilElement {
3054
3574
  addEventListener<K extends keyof HTMLXplTableHeaderCellElementEventMap>(type: K, listener: (this: HTMLXplTableHeaderCellElement, ev: XplTableHeaderCellCustomEvent<HTMLXplTableHeaderCellElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3055
3575
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3067,6 +3587,9 @@ declare global {
3067
3587
  interface HTMLXplTabsElementEventMap {
3068
3588
  "tabChange": string;
3069
3589
  }
3590
+ /**
3591
+ * @since 2.3.8
3592
+ */
3070
3593
  interface HTMLXplTabsElement extends Components.XplTabs, HTMLStencilElement {
3071
3594
  addEventListener<K extends keyof HTMLXplTabsElementEventMap>(type: K, listener: (this: HTMLXplTabsElement, ev: XplTabsCustomEvent<HTMLXplTabsElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3072
3595
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3087,6 +3610,9 @@ declare global {
3087
3610
  "tagDragStart": TagDragStartDetail;
3088
3611
  "tagRemove": void;
3089
3612
  }
3613
+ /**
3614
+ * @since 0.4.0
3615
+ */
3090
3616
  interface HTMLXplTagElement extends Components.XplTag, HTMLStencilElement {
3091
3617
  addEventListener<K extends keyof HTMLXplTagElementEventMap>(type: K, listener: (this: HTMLXplTagElement, ev: XplTagCustomEvent<HTMLXplTagElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3092
3618
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3101,6 +3627,9 @@ declare global {
3101
3627
  prototype: HTMLXplTagElement;
3102
3628
  new (): HTMLXplTagElement;
3103
3629
  };
3630
+ /**
3631
+ * @since 1.2.0
3632
+ */
3104
3633
  interface HTMLXplToastElement extends Components.XplToast, HTMLStencilElement {
3105
3634
  }
3106
3635
  var HTMLXplToastElement: {
@@ -3110,6 +3639,9 @@ declare global {
3110
3639
  interface HTMLXplToggleElementEventMap {
3111
3640
  "toggleChange": boolean;
3112
3641
  }
3642
+ /**
3643
+ * @since 0.3.0
3644
+ */
3113
3645
  interface HTMLXplToggleElement extends Components.XplToggle, HTMLStencilElement {
3114
3646
  addEventListener<K extends keyof HTMLXplToggleElementEventMap>(type: K, listener: (this: HTMLXplToggleElement, ev: XplToggleCustomEvent<HTMLXplToggleElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3115
3647
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3124,12 +3656,18 @@ declare global {
3124
3656
  prototype: HTMLXplToggleElement;
3125
3657
  new (): HTMLXplToggleElement;
3126
3658
  };
3659
+ /**
3660
+ * @since 1.2.0
3661
+ */
3127
3662
  interface HTMLXplToolbarElement extends Components.XplToolbar, HTMLStencilElement {
3128
3663
  }
3129
3664
  var HTMLXplToolbarElement: {
3130
3665
  prototype: HTMLXplToolbarElement;
3131
3666
  new (): HTMLXplToolbarElement;
3132
3667
  };
3668
+ /**
3669
+ * @since 1.7.0
3670
+ */
3133
3671
  interface HTMLXplTooltipElement extends Components.XplTooltip, HTMLStencilElement {
3134
3672
  }
3135
3673
  var HTMLXplTooltipElement: {
@@ -3145,6 +3683,7 @@ declare global {
3145
3683
  * (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
3146
3684
  * Optional **`nav-control`** and **`navOpen`**. **`left-aside`** uses **`role="list"`** for primary **`xpl-top-nav-item`** rows (**`role="listitem"`** on each item host). The built-in **`xpl-top-nav__brand`** item omits **`listitem`** (it is not a child of that list). **`label`** maps to **`nav`** **`aria-label`**. Opening state is internal (not a prop) — use **`navOpen`** and host **`xpl-top-nav--open`** for styling.
3147
3685
  * **Escape:** With **`nav-control`**, **Escape** closes the mobile drawer and emits **`navOpen`** **`false`** (skips while **any** descendant **`xpl-popover`** is open — detected from each popover’s inner **`.xpl-popover--is-open`** marker — or when a **`xpl-top-nav-item`** dropdown is open — capture/bubble order). Focus returns to the nav toggle after the drawer closes (**Escape** or second toggle click).
3686
+ * **Outside click:** With **`nav-control`**, a click outside the drawer panel (**`.xpl-top-nav__left-primary`**) also closes it and emits **`navOpen`** **`false`** (document **capture**, mirroring **`xpl-top-nav-item`**); it skips clicks on the hamburger toggle and while a descendant **`xpl-popover`** is open, and does not move focus.
3148
3687
  * **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
3149
3688
  * on **`ownerDocument`** so nested dropdowns close before the drawer.
3150
3689
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
@@ -3161,6 +3700,7 @@ declare global {
3161
3700
  * **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
3162
3701
  * **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
3163
3702
  * and emits **`navOpen(false)`** so the two layers do not stack.
3703
+ * @since 2.7.0
3164
3704
  */
3165
3705
  interface HTMLXplTopNavElement extends Components.XplTopNav, HTMLStencilElement {
3166
3706
  addEventListener<K extends keyof HTMLXplTopNavElementEventMap>(type: K, listener: (this: HTMLXplTopNavElement, ev: XplTopNavCustomEvent<HTMLXplTopNavElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3178,18 +3718,22 @@ declare global {
3178
3718
  };
3179
3719
  interface HTMLXplTopNavItemElementEventMap {
3180
3720
  "navItemClick": MouseEvent;
3721
+ "openChange": boolean;
3181
3722
  }
3182
3723
  /**
3183
- * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
3184
- * participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
3185
- * **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
3186
- * under **`xpl-nav-header-menu`**. That flag is
3724
+ * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. The host uses
3725
+ * **`role="listitem"`** when the row participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on
3726
+ * **`xpl-top-nav`** (list host is **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of
3727
+ * **`xpl-top-nav`**), or default-slot rows under **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. That flag is
3187
3728
  * kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
3188
3729
  * on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
3189
3730
  * without a full reconnect still re-sync. The internal
3190
3731
  * **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
3191
3732
  * as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
3192
3733
  * panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
3734
+ * **This component does triple duty:** a plain bar item, a dropdown trigger (**`slot="dropdown"`** present), and a
3735
+ * dropdown/menu **row** (nested inside **`xpl-nav-header-menu`** or **`xpl-top-nav-menu`**). The **`description`** prop
3736
+ * only applies in the row context — bar items and triggers do not show it in Figma.
3193
3737
  * **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
3194
3738
  * custom trigger content — the component renders the inner wrapper and BEM elements.
3195
3739
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
@@ -3209,9 +3753,37 @@ declare global {
3209
3753
  prototype: HTMLXplTopNavItemElement;
3210
3754
  new (): HTMLXplTopNavItemElement;
3211
3755
  };
3756
+ /**
3757
+ * Thin grouping container for **`xpl-top-nav-item`** rows — the panel content for a desktop flyout
3758
+ * (**`slot="dropdown"`** on the parent **`xpl-top-nav-item`**) and, on small screens, the **mobile
3759
+ * cascade**: the same markup drills in to a **Level 2** view in place, with an auto-rendered **back
3760
+ * row** (leading **`chevron-left`** + this component's **`label`**) as the first row. Tapping the back
3761
+ * row closes the parent trigger's dropdown (**`closeMenu()`**), returning to **Level 1** and restoring
3762
+ * focus to the parent trigger. No item logic otherwise lives here — row behavior (icons, description,
3763
+ * links, nested dropdowns) is entirely **`xpl-top-nav-item`**.
3764
+ * **One authoring markup, two renderings:** consumers write this once; **`isMobileCascade`** (synced
3765
+ * from **`TOP_NAV_MOBILE_MQ`**) decides whether the back row renders. Desktop never sees it — the
3766
+ * flyout is a single level of links (see `xpl-top-nav-item`'s cascade-depth notes).
3767
+ * **Panel chrome** is shared with **`xpl-nav-header-menu`** (the account menu): width
3768
+ * (**`--xpl-top-nav-panel-width`**), surface, shadow, radius, and vertical padding all come from the
3769
+ * same selector in `top-nav.css` so the desktop flyout, mobile cascade, and account menu read as one
3770
+ * visual family.
3771
+ * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens
3772
+ * resolve to dark-mode values even when the page root is light (consistent with the rest of the
3773
+ * **`xpl-top-nav`** family).
3774
+ */
3775
+ interface HTMLXplTopNavMenuElement extends Components.XplTopNavMenu, HTMLStencilElement {
3776
+ }
3777
+ var HTMLXplTopNavMenuElement: {
3778
+ prototype: HTMLXplTopNavMenuElement;
3779
+ new (): HTMLXplTopNavMenuElement;
3780
+ };
3212
3781
  interface HTMLXplUtilityBarElementEventMap {
3213
3782
  "navOpen": boolean;
3214
3783
  }
3784
+ /**
3785
+ * @since 0.1.1
3786
+ */
3215
3787
  interface HTMLXplUtilityBarElement extends Components.XplUtilityBar, HTMLStencilElement {
3216
3788
  addEventListener<K extends keyof HTMLXplUtilityBarElementEventMap>(type: K, listener: (this: HTMLXplUtilityBarElement, ev: XplUtilityBarCustomEvent<HTMLXplUtilityBarElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
3217
3789
  addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
@@ -3278,7 +3850,9 @@ declare global {
3278
3850
  "xpl-secondary-nav": HTMLXplSecondaryNavElement;
3279
3851
  "xpl-select": HTMLXplSelectElement;
3280
3852
  "xpl-side-nav": HTMLXplSideNavElement;
3853
+ "xpl-side-nav-header-item": HTMLXplSideNavHeaderItemElement;
3281
3854
  "xpl-side-nav-item": HTMLXplSideNavItemElement;
3855
+ "xpl-side-nav-section": HTMLXplSideNavSectionElement;
3282
3856
  "xpl-skeleton": HTMLXplSkeletonElement;
3283
3857
  "xpl-slideout": HTMLXplSlideoutElement;
3284
3858
  "xpl-spotlight": HTMLXplSpotlightElement;
@@ -3295,12 +3869,16 @@ declare global {
3295
3869
  "xpl-tooltip": HTMLXplTooltipElement;
3296
3870
  "xpl-top-nav": HTMLXplTopNavElement;
3297
3871
  "xpl-top-nav-item": HTMLXplTopNavItemElement;
3872
+ "xpl-top-nav-menu": HTMLXplTopNavMenuElement;
3298
3873
  "xpl-utility-bar": HTMLXplUtilityBarElement;
3299
3874
  }
3300
3875
  }
3301
3876
  declare namespace LocalJSX {
3302
3877
  type OneOf<K extends string, PropT, AttrT = PropT> = { [P in K]: PropT } & { [P in `attr:${K}` | `prop:${K}`]?: never } | { [P in `attr:${K}`]: AttrT } & { [P in K | `prop:${K}`]?: never } | { [P in `prop:${K}`]: PropT } & { [P in K | `attr:${K}`]?: never };
3303
3878
 
3879
+ /**
3880
+ * @since 2.0.0
3881
+ */
3304
3882
  interface XplAccordion {
3305
3883
  /**
3306
3884
  * set the border of the accordion none: there’s no border wrapping the header bottom:there’s a border below the header bordered: the header is wrapped by a white panel with a rounded border around it on every side
@@ -3330,6 +3908,9 @@ declare namespace LocalJSX {
3330
3908
  */
3331
3909
  "size"?: '1' | '2' | '3';
3332
3910
  }
3911
+ /**
3912
+ * @since 0.5.0
3913
+ */
3333
3914
  interface XplApplicationShell {
3334
3915
  /**
3335
3916
  * @property {boolean} - *
@@ -3352,6 +3933,9 @@ declare namespace LocalJSX {
3352
3933
  */
3353
3934
  "withUtility"?: boolean;
3354
3935
  }
3936
+ /**
3937
+ * @since 0.1.1
3938
+ */
3355
3939
  interface XplAvatar {
3356
3940
  /**
3357
3941
  * Background color when there is no image src
@@ -3400,6 +3984,9 @@ declare namespace LocalJSX {
3400
3984
  */
3401
3985
  "variant"?: AvatarVariant;
3402
3986
  }
3987
+ /**
3988
+ * @since 0.1.2
3989
+ */
3403
3990
  interface XplBackdrop {
3404
3991
  /**
3405
3992
  * @property {boolean} - When true, backdrop will have relative position. This is useful when the backdrop doesn't cover the whole view area. If false, the position will be fixed and cover the whole view area.
@@ -3407,6 +3994,9 @@ declare namespace LocalJSX {
3407
3994
  */
3408
3995
  "relative"?: boolean;
3409
3996
  }
3997
+ /**
3998
+ * @since 0.1.1
3999
+ */
3410
4000
  interface XplBadge {
3411
4001
  /**
3412
4002
  * Whether badge shows a bordered ring
@@ -3438,6 +4028,9 @@ declare namespace LocalJSX {
3438
4028
  */
3439
4029
  "variant"?: BadgeVariantProp;
3440
4030
  }
4031
+ /**
4032
+ * @since 2.6.0
4033
+ */
3441
4034
  interface XplBanner {
3442
4035
  /**
3443
4036
  * Primary action label. When provided, an action button is rendered.
@@ -3497,6 +4090,9 @@ declare namespace LocalJSX {
3497
4090
  }
3498
4091
  interface XplBreadcrumbs {
3499
4092
  }
4093
+ /**
4094
+ * @since 0.1.1
4095
+ */
3500
4096
  interface XplButton {
3501
4097
  /**
3502
4098
  * Attributes to apply to the inner native `<button>` (e.g., tab a11y wiring). Use this instead of setting `id` / `role` / `aria-*` on the host when the inner control is the element that needs them (e.g., WAI-ARIA composite widgets).
@@ -3578,6 +4174,9 @@ declare namespace LocalJSX {
3578
4174
  */
3579
4175
  "variant"?: 'primary' | 'secondary' | 'tertiary' | 'subtle';
3580
4176
  }
4177
+ /**
4178
+ * @since 0.4.0
4179
+ */
3581
4180
  interface XplButtonRow {
3582
4181
  /**
3583
4182
  * Fires on the primary button. If not set, the button can act as a standard submit button for a form.
@@ -3604,6 +4203,9 @@ declare namespace LocalJSX {
3604
4203
  */
3605
4204
  "tertiary"?: 'string';
3606
4205
  }
4206
+ /**
4207
+ * @since 2.0.0
4208
+ */
3607
4209
  interface XplCalendar {
3608
4210
  /**
3609
4211
  * Format of the date displayed in the calendar. Default is 'Y-m-d'.
@@ -3637,6 +4239,9 @@ declare namespace LocalJSX {
3637
4239
  */
3638
4240
  "onDateSelected"?: (event: XplCalendarCustomEvent<string | string[]>) => void;
3639
4241
  }
4242
+ /**
4243
+ * @since 0.1.1
4244
+ */
3640
4245
  interface XplCheckbox {
3641
4246
  /**
3642
4247
  * Accessible name for the native checkbox input (sets `aria-label` on the `input`). Use when there is no visible label text in the default slot. Defaults to `''`; empty or whitespace-only values omit `aria-label` on the input so a visible `<label>` remains the sole name source.
@@ -3684,6 +4289,9 @@ declare namespace LocalJSX {
3684
4289
  */
3685
4290
  "value"?: string;
3686
4291
  }
4292
+ /**
4293
+ * @since 0.1.1
4294
+ */
3687
4295
  interface XplChoicelist {
3688
4296
  /**
3689
4297
  * An array of choices to be displayed in the list. Each choice should be an object with keys: - `checked` [boolean] - whether to pre-check or not - `children` [Choice[]] - an array of child choices (recursive) - `description` [string] - `label` [string]
@@ -3719,6 +4327,9 @@ declare namespace LocalJSX {
3719
4327
  */
3720
4328
  "styled"?: boolean;
3721
4329
  }
4330
+ /**
4331
+ * @since 0.1.2
4332
+ */
3722
4333
  interface XplContentArea {
3723
4334
  /**
3724
4335
  * @property {string} size - The content-area size.
@@ -3726,8 +4337,14 @@ declare namespace LocalJSX {
3726
4337
  */
3727
4338
  "size"?: 'wide' | 'narrow' | 'full';
3728
4339
  }
4340
+ /**
4341
+ * @since 1.0.0
4342
+ */
3729
4343
  interface XplDashboard {
3730
4344
  }
4345
+ /**
4346
+ * @since 1.0.0
4347
+ */
3731
4348
  interface XplDataCard {
3732
4349
  /**
3733
4350
  * An optional field that typically describes or modifies the small stat
@@ -3785,12 +4402,18 @@ declare namespace LocalJSX {
3785
4402
  */
3786
4403
  "variant"?: 'primary' | 'secondary';
3787
4404
  }
4405
+ /**
4406
+ * @since 0.3.0
4407
+ */
3788
4408
  interface XplDivider {
3789
4409
  /**
3790
4410
  * The tier should be an integer between 0 and 3. Tier 0 dividers do not display text, and 1-3 increase in size with each increasing tier.
3791
4411
  */
3792
4412
  "tier"?: number;
3793
4413
  }
4414
+ /**
4415
+ * @since 0.4.0
4416
+ */
3794
4417
  interface XplDropdown {
3795
4418
  /**
3796
4419
  * whether to anchor the dropdown to the trigger element, requires triggerId to be set
@@ -3845,7 +4468,7 @@ declare namespace LocalJSX {
3845
4468
  /**
3846
4469
  * call back function invoked when a selection is made
3847
4470
  */
3848
- "update"?: (e, { component }: { component: Dropdown }) => void;
4471
+ "update"?: (e: Event | null, context: { component: Dropdown }) => void;
3849
4472
  }
3850
4473
  interface XplDropdownGroup {
3851
4474
  /**
@@ -3889,12 +4512,18 @@ declare namespace LocalJSX {
3889
4512
  */
3890
4513
  "value"?: string;
3891
4514
  }
4515
+ /**
4516
+ * @since 1.4.0
4517
+ */
3892
4518
  interface XplDynamicTable {
3893
4519
  /**
3894
4520
  * Emitted when the number of selected items changes.
3895
4521
  */
3896
4522
  "onSelectedItemCountChange"?: (event: XplDynamicTableCustomEvent<string[]>) => void;
3897
4523
  }
4524
+ /**
4525
+ * @since 1.3.0
4526
+ */
3898
4527
  interface XplDynamicTableCell {
3899
4528
  /**
3900
4529
  * Whether the cell and its contents are disabled.
@@ -3902,6 +4531,9 @@ declare namespace LocalJSX {
3902
4531
  */
3903
4532
  "disabled"?: boolean;
3904
4533
  }
4534
+ /**
4535
+ * @since 1.3.0
4536
+ */
3905
4537
  interface XplDynamicTableRow {
3906
4538
  /**
3907
4539
  * Whether the row and its cells are disabled.
@@ -3914,8 +4546,14 @@ declare namespace LocalJSX {
3914
4546
  */
3915
4547
  "selected"?: boolean;
3916
4548
  }
4549
+ /**
4550
+ * @since 0.4.0
4551
+ */
3917
4552
  interface XplGrid {
3918
4553
  }
4554
+ /**
4555
+ * @since 0.4.0
4556
+ */
3919
4557
  interface XplGridItem {
3920
4558
  /**
3921
4559
  * The number of columns the element should span out of a 6 column grid on a lg size screen
@@ -3938,6 +4576,9 @@ declare namespace LocalJSX {
3938
4576
  */
3939
4577
  "xs"?: number;
3940
4578
  }
4579
+ /**
4580
+ * @since 1.2.0
4581
+ */
3941
4582
  interface XplHeaderAccordion {
3942
4583
  /**
3943
4584
  * The id of the content region controlled by the accordion.
@@ -3964,6 +4605,9 @@ declare namespace LocalJSX {
3964
4605
  */
3965
4606
  "selectedCount"?: number;
3966
4607
  }
4608
+ /**
4609
+ * @since 1.0.0
4610
+ */
3967
4611
  interface XplIcon {
3968
4612
  /**
3969
4613
  * Icon's background color.
@@ -3979,6 +4623,9 @@ declare namespace LocalJSX {
3979
4623
  */
3980
4624
  "size"?: number;
3981
4625
  }
4626
+ /**
4627
+ * @since 0.3.0
4628
+ */
3982
4629
  interface XplInput {
3983
4630
  /**
3984
4631
  * Because `id` is a reserved HTMLElement attribute, we prefix it with an underscore here so that it doesn't get automatically applied to the outer container. Applies to all input types.
@@ -4515,6 +5162,9 @@ declare namespace LocalJSX {
4515
5162
  */
4516
5163
  "value"?: string;
4517
5164
  }
5165
+ /**
5166
+ * @since 1.9.1
5167
+ */
4518
5168
  interface XplLargeCard {
4519
5169
  /**
4520
5170
  * Description of the Card
@@ -4529,6 +5179,9 @@ declare namespace LocalJSX {
4529
5179
  */
4530
5180
  "name"?: string;
4531
5181
  }
5182
+ /**
5183
+ * @since 0.4.0
5184
+ */
4532
5185
  interface XplList {
4533
5186
  /**
4534
5187
  * Array of list items to render. Each item should follow the ListItem interface. **Deprecated.** Use slot-based xpl-list-item children instead.
@@ -4640,6 +5293,9 @@ declare namespace LocalJSX {
4640
5293
  */
4641
5294
  "titleBadgeVariant"?: BadgeVariantProp1;
4642
5295
  }
5296
+ /**
5297
+ * @since 0.1.2
5298
+ */
4643
5299
  interface XplMainNav {
4644
5300
  /**
4645
5301
  * @event {string} navWidth - Emits the `nav-width` prop set by the user when the component is attached to the DOM and when the component is updated.
@@ -4651,6 +5307,9 @@ declare namespace LocalJSX {
4651
5307
  */
4652
5308
  "width"?: 'default' | 'md' | 'sm';
4653
5309
  }
5310
+ /**
5311
+ * @since 1.1.0
5312
+ */
4654
5313
  interface XplModal {
4655
5314
  /**
4656
5315
  * Whether the modal is open.
@@ -4700,6 +5359,9 @@ declare namespace LocalJSX {
4700
5359
  */
4701
5360
  "username"?: string;
4702
5361
  }
5362
+ /**
5363
+ * @since 0.1.2
5364
+ */
4703
5365
  interface XplNavItem {
4704
5366
  /**
4705
5367
  * @property {boolean} - Whether or not the item should control the main nav state on click
@@ -4711,6 +5373,9 @@ declare namespace LocalJSX {
4711
5373
  */
4712
5374
  "onNavOpen"?: (event: XplNavItemCustomEvent<boolean>) => void;
4713
5375
  }
5376
+ /**
5377
+ * @since 0.1.1
5378
+ */
4714
5379
  interface XplPagination {
4715
5380
  /**
4716
5381
  * The current active page (1-based). Marked as mutable so we can update from inside this component.
@@ -4749,6 +5414,7 @@ declare namespace LocalJSX {
4749
5414
  /**
4750
5415
  * A stateless container that defines a section on a page and can house any
4751
5416
  * type of content. Panels are not dismissible and may contain a top accent.
5417
+ * @since 2.6.0
4752
5418
  */
4753
5419
  interface XplPanel {
4754
5420
  /**
@@ -4762,6 +5428,9 @@ declare namespace LocalJSX {
4762
5428
  */
4763
5429
  "padding"?: 'default' | 'tight' | 'loose';
4764
5430
  }
5431
+ /**
5432
+ * @since 2.0.0
5433
+ */
4765
5434
  interface XplPopover {
4766
5435
  /**
4767
5436
  * Whether the popover is disabled or not.
@@ -4788,6 +5457,9 @@ declare namespace LocalJSX {
4788
5457
  */
4789
5458
  "position"?: PopoverPosition;
4790
5459
  }
5460
+ /**
5461
+ * @since 2.6.0
5462
+ */
4791
5463
  interface XplProgressBar {
4792
5464
  /**
4793
5465
  * The helper text displayed below the progress bar (recommended for error state)
@@ -4818,6 +5490,9 @@ declare namespace LocalJSX {
4818
5490
  */
4819
5491
  "variant"?: 'default' | 'success' | 'error' | 'indeterminate';
4820
5492
  }
5493
+ /**
5494
+ * @since 2.7.0
5495
+ */
4821
5496
  interface XplProgressIndicator {
4822
5497
  /**
4823
5498
  * Current step index. Steps with index < currentStep are "finished", the step at currentStep is "active", and steps beyond are "waiting". Set to steps.length to mark all steps as finished. Automatically clamped to [0, steps.length].
@@ -4844,6 +5519,9 @@ declare namespace LocalJSX {
4844
5519
  */
4845
5520
  "steps"?: string[];
4846
5521
  }
5522
+ /**
5523
+ * @since 0.1.1
5524
+ */
4847
5525
  interface XplRadio {
4848
5526
  /**
4849
5527
  * Whether the input is "on"
@@ -4882,8 +5560,14 @@ declare namespace LocalJSX {
4882
5560
  */
4883
5561
  "value"?: string;
4884
5562
  }
5563
+ /**
5564
+ * @since 0.3.0
5565
+ */
4885
5566
  interface XplSecondaryNav {
4886
5567
  }
5568
+ /**
5569
+ * @since 0.4.0
5570
+ */
4887
5571
  interface XplSelect {
4888
5572
  /**
4889
5573
  * An array of choices for the user to choose from. Each choice should be of the form: { label: string; href?: string; value?: string; isGroupHeading?: boolean; isSelected?: boolean; isDisabled?: boolean; options?: DropdownItem[]; groupName?: string; }
@@ -4909,12 +5593,12 @@ declare namespace LocalJSX {
4909
5593
  /**
4910
5594
  * Additional placements to try for the options panel when the default `dropdownPlacement` does not fit. Passed to `xpl-dropdown` / Floating UI `flip`.
4911
5595
  */
4912
- "dropdownFlipFallbackPlacements"?: Placement[];
5596
+ "dropdownFlipFallbackPlacements"?: Placement1[];
4913
5597
  /**
4914
5598
  * Initial Floating UI placement for the options panel (e.g. `top-start`, `bottom-start`). Forwarded to the inner `xpl-dropdown` when the menu is open.
4915
5599
  * @default 'bottom-start'
4916
5600
  */
4917
- "dropdownPlacement"?: Placement;
5601
+ "dropdownPlacement"?: Placement1;
4918
5602
  /**
4919
5603
  * If an empty string (attribute present with no value), will display visually as an error. If a string is included, will display visually as an error and include the value as an error message.
4920
5604
  */
@@ -4971,8 +5655,8 @@ declare namespace LocalJSX {
4971
5655
  "truncate"?: boolean;
4972
5656
  }
4973
5657
  /**
4974
- * Slot-based sidebar for app navigation: a scrollable main `section` and a fixed
4975
- * `nav-footer`. Compose with `xpl-side-nav-item` for rows.
5658
+ * Slot-based sidebar for app navigation: a scrollable `nav-header` + `section`
5659
+ * area and a fixed `nav-footer`. Compose with `xpl-side-nav-item` for rows.
4976
5660
  * **Mobile (v2):** below the Tailwind `md` breakpoint, the sidebar collapses to a
4977
5661
  * ~56px top bar with a toggle button (`sidebar-left-show` / `sidebar-left-hide`).
4978
5662
  * Activating the toggle opens a drawer containing the `section` + `nav-footer`
@@ -4984,6 +5668,7 @@ declare namespace LocalJSX {
4984
5668
  * the `openChange` event, and the `toggle()` / `setOpen()` methods.
4985
5669
  * **v2 breaking change (beta):** consumers who wrapped their own mobile toggle
4986
5670
  * around `xpl-side-nav` should remove it — the toggle and drawer are now built in.
5671
+ * @since 2.6.0
4987
5672
  */
4988
5673
  interface XplSideNav {
4989
5674
  /**
@@ -5000,6 +5685,53 @@ declare namespace LocalJSX {
5000
5685
  */
5001
5686
  "open"?: boolean;
5002
5687
  }
5688
+ /**
5689
+ * Header row for `xpl-side-nav`'s `nav-header` slot (Figma `<navHeaderItem>`,
5690
+ * node `51299-9007`). Two types:
5691
+ * - **`product-label` (default)** — a non-interactive `<div>` row that shows the
5692
+ * current product/area name in a subdued color. No click behavior.
5693
+ * - **`sub-account`** — an interactive `<button>` row (e.g. a location / account
5694
+ * switcher). Emits `navigate` on activation (pointer click or keyboard); the
5695
+ * consumer wires this to open a modal or other entity-switching experience.
5696
+ * When no `slot="trailing"` content is provided, an auto chevron
5697
+ * (`chevron-expand-y`, a static dual-arrow glyph — no rotation) renders by default.
5698
+ * Both types support `slot="leading"` / `slot="trailing"` (the `icon` prop is a
5699
+ * convenience shorthand for `slot="leading"`, same as `xpl-side-nav-item`) so they
5700
+ * can scale to future uses. Unlike `xpl-side-nav-item`, the leading/trailing
5701
+ * columns are NOT unconditionally reserved — they only render when there is
5702
+ * content, matching the Figma variants where the leading icon is an optional toggle.
5703
+ * **Note on the `sub-account` hover / selected visual:** the interactive row
5704
+ * mirrors `xpl-side-nav-item` — the hover and selected backgrounds fill a single
5705
+ * `__content` pill that wraps the leading icon + label + trailing chevron, with
5706
+ * an 8px (`--xpl-border-radius-default`) radius. The pill insets 8px from the nav
5707
+ * edge (an 8px gutter on the button) so it lines up with the item rows below it,
5708
+ * and hover/selected therefore highlight the whole row content rather than a
5709
+ * partial fragment.
5710
+ */
5711
+ interface XplSideNavHeaderItem {
5712
+ /**
5713
+ * Optional icon name; renders as the default content for `slot="leading"`. When `slot="leading"` content is present, this prop is ignored.
5714
+ */
5715
+ "icon"?: string;
5716
+ /**
5717
+ * The display label for the header item (e.g. the product name or sub-account name).
5718
+ */
5719
+ "label"?: string;
5720
+ /**
5721
+ * Emitted when a `sub-account` item is activated (pointer click or keyboard activation of the native `<button>`). Not emitted for `product-label` (static, no interaction).
5722
+ */
5723
+ "onNavigate"?: (event: XplSideNavHeaderItemCustomEvent<void>) => void;
5724
+ /**
5725
+ * Whether the item is currently in a selected state. Only meaningful when `type` is `sub-account` — applies the information-surface pill around the label + trailing chevron.
5726
+ * @default false
5727
+ */
5728
+ "selected"?: boolean;
5729
+ /**
5730
+ * The header item variant. `product-label` is a static, non-interactive label. `sub-account` is an interactive button that emits `navigate`.
5731
+ * @default 'product-label'
5732
+ */
5733
+ "type"?: 'product-label' | 'sub-account';
5734
+ }
5003
5735
  /**
5004
5736
  * Navigation row for `xpl-side-nav`. Renders a button (default) or a slot-only
5005
5737
  * anchor container (`link` mode). Three slot positions are available:
@@ -5063,15 +5795,54 @@ declare namespace LocalJSX {
5063
5795
  */
5064
5796
  "onExpandedChange"?: (event: XplSideNavItemCustomEvent<boolean>) => void;
5065
5797
  /**
5066
- * Emitted when a leaf item is clicked. Expandable parents use `expandedChange` instead.
5798
+ * Emitted when a leaf item is activated (pointer click or keyboard activation of the native `<button>`). Expandable parents use `expandedChange` instead.
5067
5799
  */
5068
- "onNavClick"?: (event: XplSideNavItemCustomEvent<void>) => void;
5800
+ "onNavigate"?: (event: XplSideNavItemCustomEvent<void>) => void;
5069
5801
  /**
5070
5802
  * Whether the item is currently in a selected state.
5071
5803
  * @default false
5072
5804
  */
5073
5805
  "selected"?: boolean;
5074
5806
  }
5807
+ /**
5808
+ * Grouping / accordion header for `xpl-side-nav`. Wraps nested `xpl-side-nav-item`
5809
+ * (and optional divider separators) elements in the default slot and collapses
5810
+ * them as a unit.
5811
+ * Two variants:
5812
+ * - **Collapsible (default, `collapsible=true`)** — a `<button>` header with a
5813
+ * chevron (`chevron-right` collapsed / `chevron-down` expanded, no rotation —
5814
+ * the glyph itself swaps). Click toggles `expanded` and emits `expandedChange`.
5815
+ * - **Static (`collapsible=false`)** — a non-interactive title row with no chevron;
5816
+ * children are always shown. Used for a static section label (e.g. a future
5817
+ * product-name / location-changer header).
5818
+ * Unlike `xpl-side-nav-item[has-children]`, section children are **not indented**
5819
+ * — they align with top-level items at the same leading-icon column.
5820
+ * `slot="badge"` renders an optional badge (e.g. `xpl-badge`) in the header title
5821
+ * row. The wrapper is suppressed when the slot is empty.
5822
+ */
5823
+ interface XplSideNavSection {
5824
+ /**
5825
+ * Whether the section can be collapsed/expanded. When `false`, renders a static title (no chevron, not a button) and children are always shown.
5826
+ * @default true
5827
+ */
5828
+ "collapsible"?: boolean;
5829
+ /**
5830
+ * Whether the section is currently expanded. Only meaningful when `collapsible` is true.
5831
+ * @default false
5832
+ */
5833
+ "expanded"?: boolean;
5834
+ /**
5835
+ * The section title text. Optional, but when `collapsible` is true and both `heading` and `slot="badge"` lack an accessible name, the toggle `<button>` falls back to `aria-label="Toggle section"` so it always has an accessible name.
5836
+ */
5837
+ "heading"?: string;
5838
+ /**
5839
+ * Emitted when the expanded state changes (collapsible sections only). Detail is the new expanded value.
5840
+ */
5841
+ "onExpandedChange"?: (event: XplSideNavSectionCustomEvent<boolean>) => void;
5842
+ }
5843
+ /**
5844
+ * @since 2.3.6
5845
+ */
5075
5846
  interface XplSkeleton {
5076
5847
  /**
5077
5848
  * A CSS class name to apply to the component.
@@ -5111,6 +5882,9 @@ declare namespace LocalJSX {
5111
5882
  */
5112
5883
  "width"?: CSSStyleDeclaration['width'];
5113
5884
  }
5885
+ /**
5886
+ * @since 1.1.0
5887
+ */
5114
5888
  interface XplSlideout {
5115
5889
  /**
5116
5890
  * Whether to show a backdrop behind the slideout.
@@ -5137,6 +5911,9 @@ declare namespace LocalJSX {
5137
5911
  */
5138
5912
  "variant"?: 'default' | 'warning';
5139
5913
  }
5914
+ /**
5915
+ * @since 2.7.0
5916
+ */
5140
5917
  interface XplSpotlight {
5141
5918
  /**
5142
5919
  * Footer action layout. `default` and `dual` both render the standard Back/Next layout, while `single` renders a single acknowledgement CTA (e.g. "Got it!"). Only applies when `showActions` is `true`.
@@ -5222,7 +5999,19 @@ declare namespace LocalJSX {
5222
5999
  */
5223
6000
  "totalSteps"?: number;
5224
6001
  }
6002
+ /**
6003
+ * @since 2.3.8
6004
+ */
5225
6005
  interface XplTab {
6006
+ /**
6007
+ * Optional trailing number badge (e.g. a count). Rendered after the label as a compact `xpl-badge` in both underline (`type="tabs"`) and segment (`type="segment"`) tabs. Leave empty to omit the badge.
6008
+ */
6009
+ "badge"?: string;
6010
+ /**
6011
+ * Color palette for the trailing number badge. Only applies when `badge` is set. Defaults to `purple` — the standard number-badge color in the Figma XPL-Tab Group spec.
6012
+ * @default 'purple'
6013
+ */
6014
+ "badgeVariant"?: BadgePalette;
5226
6015
  /**
5227
6016
  * Disables this tab (pill or underline).
5228
6017
  * @default false
@@ -5234,11 +6023,11 @@ declare namespace LocalJSX {
5234
6023
  */
5235
6024
  "groupDisabled"?: boolean;
5236
6025
  /**
5237
- * Optional icon name for segment-style pills (`type="segment"` on parent `xpl-tabs`). Ignored for default tabs.
6026
+ * Optional leading icon name (from the Apollo icon set). Rendered in both underline (`type="tabs"`) and segment (`type="segment"`) tabs.
5238
6027
  */
5239
6028
  "icon"?: string;
5240
6029
  /**
5241
- * Icon position for segment-style pills.
6030
+ * Icon position relative to the label. Applies to both underline and segment tabs.
5242
6031
  * @default 'start'
5243
6032
  */
5244
6033
  "iconPosition"?: 'start' | 'end';
@@ -5256,6 +6045,9 @@ declare namespace LocalJSX {
5256
6045
  */
5257
6046
  "target"?: string;
5258
6047
  }
6048
+ /**
6049
+ * @since 2.3.8
6050
+ */
5259
6051
  interface XplTabPanel {
5260
6052
  /**
5261
6053
  * Whether the panel is selected
@@ -5267,6 +6059,9 @@ declare namespace LocalJSX {
5267
6059
  */
5268
6060
  "target"?: string;
5269
6061
  }
6062
+ /**
6063
+ * @since 0.1.1
6064
+ */
5270
6065
  interface XplTable {
5271
6066
  /**
5272
6067
  * The header values for each column.
@@ -5294,12 +6089,12 @@ declare namespace LocalJSX {
5294
6089
  */
5295
6090
  "multiselect"?: boolean;
5296
6091
  /**
5297
- * Emits an event whenever the sort changes. The 'sortChanged' event passes an object with colNum (number), colName (string), sortTypeArr(string[]). The default action can be overridden by calling event.preventDefault().
6092
+ * Emits an event whenever the sort changes. The 'sortChanged' event passes an object with colNum (number), colName (string), sortTypeArr(('asc' | 'desc' | null)[]). The default action can be overridden by calling event.preventDefault().
5298
6093
  */
5299
6094
  "onSortChanged"?: (event: XplTableCustomEvent<{
5300
6095
  colNum: number;
5301
6096
  colName: string;
5302
- sortTypeArr: string[];
6097
+ sortTypeArr: ('asc' | 'desc' | null)[];
5303
6098
  }>) => void;
5304
6099
  /**
5305
6100
  * Callback function that is called when the checkbox for a row of a `multiselect` table is checked
@@ -5320,8 +6115,14 @@ declare namespace LocalJSX {
5320
6115
  */
5321
6116
  "striped"?: boolean;
5322
6117
  }
6118
+ /**
6119
+ * @since 1.0.0
6120
+ */
5323
6121
  interface XplTableHeader {
5324
6122
  }
6123
+ /**
6124
+ * @since 1.3.0
6125
+ */
5325
6126
  interface XplTableHeaderCell {
5326
6127
  /**
5327
6128
  * Icon to display in the cell. See [xpl-icon available icons](../xpl-icon/ICONS.md) for valid icon names.
@@ -5351,6 +6152,9 @@ declare namespace LocalJSX {
5351
6152
  */
5352
6153
  "width"?: number;
5353
6154
  }
6155
+ /**
6156
+ * @since 2.3.8
6157
+ */
5354
6158
  interface XplTabs {
5355
6159
  /**
5356
6160
  * Disables the whole tab group (headings, mobile select, and segment pills).
@@ -5376,6 +6180,9 @@ declare namespace LocalJSX {
5376
6180
  */
5377
6181
  "value"?: string;
5378
6182
  }
6183
+ /**
6184
+ * @since 0.4.0
6185
+ */
5379
6186
  interface XplTag {
5380
6187
  /**
5381
6188
  * Whether the tag is disabled
@@ -5419,32 +6226,44 @@ declare namespace LocalJSX {
5419
6226
  */
5420
6227
  "tagId"?: string;
5421
6228
  }
6229
+ /**
6230
+ * @since 1.2.0
6231
+ */
5422
6232
  interface XplToast {
5423
6233
  /**
5424
- * @property {string} - The caption of the toast, limited to 85 characters
6234
+ * The caption of the toast, limited to 85 characters.
6235
+ * @default ''
5425
6236
  */
5426
6237
  "caption"?: string;
5427
6238
  /**
5428
- * @property {boolean} - Whether or not the toast is dismissible
5429
- * @default true
6239
+ * Whether the toast shows a dismiss (close) button.
6240
+ * @deprecated Misspelled. Use `dismissible` instead. When both are set, `dismissable` wins so existing markup keeps working; `dismissable` is removed in the next major version.
5430
6241
  */
5431
6242
  "dismissable"?: boolean;
5432
6243
  /**
5433
- * @property {boolean} - Whether or not to show the icon
6244
+ * Whether the toast shows a dismiss (close) button.
6245
+ * @default true
6246
+ */
6247
+ "dismissible"?: boolean;
6248
+ /**
6249
+ * Whether to show the leading sentiment icon.
5434
6250
  * @default true
5435
6251
  */
5436
6252
  "showIcon"?: boolean;
5437
6253
  /**
5438
- * @property {number} - The timeout for the toast to dismiss in ms, default 8 seconds
6254
+ * How long the toast waits before auto-dismissing, in ms. Set to `0` to disable auto-dismiss. Ignored when the `action` slot has content.
5439
6255
  * @default 8000
5440
6256
  */
5441
6257
  "timeout"?: number;
5442
6258
  /**
5443
- * @property {string} - The variant of the toast
6259
+ * The sentiment of the toast.
5444
6260
  * @default 'neutral'
5445
6261
  */
5446
6262
  "variant"?: 'neutral' | 'warning' | 'success';
5447
6263
  }
6264
+ /**
6265
+ * @since 0.3.0
6266
+ */
5448
6267
  interface XplToggle {
5449
6268
  /**
5450
6269
  * Whether the toggle is `on`
@@ -5480,6 +6299,9 @@ declare namespace LocalJSX {
5480
6299
  */
5481
6300
  "variant"?: 'default' | 'small';
5482
6301
  }
6302
+ /**
6303
+ * @since 1.2.0
6304
+ */
5483
6305
  interface XplToolbar {
5484
6306
  /**
5485
6307
  * The number of selected items to display in the toolbar.
@@ -5487,6 +6309,9 @@ declare namespace LocalJSX {
5487
6309
  */
5488
6310
  "selectedItemCount"?: number;
5489
6311
  }
6312
+ /**
6313
+ * @since 1.7.0
6314
+ */
5490
6315
  interface XplTooltip {
5491
6316
  /**
5492
6317
  * Hide the arrow
@@ -5515,6 +6340,7 @@ declare namespace LocalJSX {
5515
6340
  * (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
5516
6341
  * Optional **`nav-control`** and **`navOpen`**. **`left-aside`** uses **`role="list"`** for primary **`xpl-top-nav-item`** rows (**`role="listitem"`** on each item host). The built-in **`xpl-top-nav__brand`** item omits **`listitem`** (it is not a child of that list). **`label`** maps to **`nav`** **`aria-label`**. Opening state is internal (not a prop) — use **`navOpen`** and host **`xpl-top-nav--open`** for styling.
5517
6342
  * **Escape:** With **`nav-control`**, **Escape** closes the mobile drawer and emits **`navOpen`** **`false`** (skips while **any** descendant **`xpl-popover`** is open — detected from each popover’s inner **`.xpl-popover--is-open`** marker — or when a **`xpl-top-nav-item`** dropdown is open — capture/bubble order). Focus returns to the nav toggle after the drawer closes (**Escape** or second toggle click).
6343
+ * **Outside click:** With **`nav-control`**, a click outside the drawer panel (**`.xpl-top-nav__left-primary`**) also closes it and emits **`navOpen`** **`false`** (document **capture**, mirroring **`xpl-top-nav-item`**); it skips clicks on the hamburger toggle and while a descendant **`xpl-popover`** is open, and does not move focus.
5518
6344
  * **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
5519
6345
  * on **`ownerDocument`** so nested dropdowns close before the drawer.
5520
6346
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
@@ -5531,6 +6357,7 @@ declare namespace LocalJSX {
5531
6357
  * **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
5532
6358
  * **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
5533
6359
  * and emits **`navOpen(false)`** so the two layers do not stack.
6360
+ * @since 2.7.0
5534
6361
  */
5535
6362
  interface XplTopNav {
5536
6363
  /**
@@ -5567,16 +6394,19 @@ declare namespace LocalJSX {
5567
6394
  "onNavOpen"?: (event: XplTopNavCustomEvent<boolean>) => void;
5568
6395
  }
5569
6396
  /**
5570
- * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
5571
- * participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
5572
- * **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
5573
- * under **`xpl-nav-header-menu`**. That flag is
6397
+ * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. The host uses
6398
+ * **`role="listitem"`** when the row participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on
6399
+ * **`xpl-top-nav`** (list host is **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of
6400
+ * **`xpl-top-nav`**), or default-slot rows under **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. That flag is
5574
6401
  * kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
5575
6402
  * on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
5576
6403
  * without a full reconnect still re-sync. The internal
5577
6404
  * **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
5578
6405
  * as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
5579
6406
  * panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
6407
+ * **This component does triple duty:** a plain bar item, a dropdown trigger (**`slot="dropdown"`** present), and a
6408
+ * dropdown/menu **row** (nested inside **`xpl-nav-header-menu`** or **`xpl-top-nav-menu`**). The **`description`** prop
6409
+ * only applies in the row context — bar items and triggers do not show it in Figma.
5580
6410
  * **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
5581
6411
  * custom trigger content — the component renders the inner wrapper and BEM elements.
5582
6412
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
@@ -5588,12 +6418,16 @@ declare namespace LocalJSX {
5588
6418
  * @default false
5589
6419
  */
5590
6420
  "active"?: boolean;
6421
+ /**
6422
+ * Optional description line shown below **`label`** (row context only, e.g. inside **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**). Ignored when **`label`** is not set.
6423
+ */
6424
+ "description"?: string;
5591
6425
  /**
5592
6426
  * If set without **`slot="dropdown"`**, the inner control renders as a native **`<a href>`** (link mode).
5593
6427
  */
5594
6428
  "href"?: string;
5595
6429
  /**
5596
- * Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set).
6430
+ * Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set). Ignored when **`slot="leading-icon"`** content is present.
5597
6431
  * @default ''
5598
6432
  */
5599
6433
  "icon"?: string;
@@ -5606,15 +6440,57 @@ declare namespace LocalJSX {
5606
6440
  */
5607
6441
  "label"?: string;
5608
6442
  /**
5609
- * Emitted for plain items (button or link) on pointer **click**, or when keyboard activation produces a **`click`** (native for **Enter** on **`<a href>`**, or programmatic **`.click()`** for **Space** on links). **`detail`** is the **`MouseEvent`** from that activation (synthetic only for **`<div role="button">`** via **Enter** / **Space**). Not emitted when **`slot="dropdown"`** is used.
6443
+ * Emitted for plain items (button or link) on pointer **click**, or when keyboard activation produces a **`click`**: the native **`<button>`** fires a real **`click`** on **Enter** / **Space**, a native **`<a href>`** on **Enter**, and **Space** on a link maps to a programmatic **`.click()`**. **`detail`** is always the real **`MouseEvent`** from that activation (keyboard-driven clicks have **`detail === 0`**). Not emitted when **`slot="dropdown"`** is used.
5610
6444
  */
5611
6445
  "onNavItemClick"?: (event: XplTopNavItemCustomEvent<MouseEvent>) => void;
6446
+ /**
6447
+ * Emitted whenever **`open`** changes (click, hover, keyboard, Escape, outside click, or programmatic).
6448
+ */
6449
+ "onOpenChange"?: (event: XplTopNavItemCustomEvent<boolean>) => void;
6450
+ /**
6451
+ * Whether the **`slot="dropdown"`** panel is open. Reflected to the **`open`** attribute so consumers can drive it (controlled) or read it back (uncontrolled, toggled internally on click / hover / keyboard activation). Prefer **`openMenu()`** / **`closeMenu()`** / **`toggleMenu()`** over setting this directly from event handlers.
6452
+ * @default false
6453
+ */
6454
+ "open"?: boolean;
6455
+ /**
6456
+ * How the **`slot="dropdown"`** panel opens. **`hover`** is gated on **`TOP_NAV_ITEM_HOVER_OPEN_MQ`** (hover-capable, fine pointer, **`md`** and up) — below that, or on touch / coarse-pointer devices, **`hover`** falls back to click/tap. Keyboard activation (Enter / Space) always toggles regardless of **`openMode`**.
6457
+ * @default 'click'
6458
+ */
6459
+ "openMode"?: 'click' | 'hover';
5612
6460
  /**
5613
6461
  * When true, sets **`aria-current="page"`** and selected styling.
5614
6462
  * @default false
5615
6463
  */
5616
6464
  "selected"?: boolean;
5617
6465
  }
6466
+ /**
6467
+ * Thin grouping container for **`xpl-top-nav-item`** rows — the panel content for a desktop flyout
6468
+ * (**`slot="dropdown"`** on the parent **`xpl-top-nav-item`**) and, on small screens, the **mobile
6469
+ * cascade**: the same markup drills in to a **Level 2** view in place, with an auto-rendered **back
6470
+ * row** (leading **`chevron-left`** + this component's **`label`**) as the first row. Tapping the back
6471
+ * row closes the parent trigger's dropdown (**`closeMenu()`**), returning to **Level 1** and restoring
6472
+ * focus to the parent trigger. No item logic otherwise lives here — row behavior (icons, description,
6473
+ * links, nested dropdowns) is entirely **`xpl-top-nav-item`**.
6474
+ * **One authoring markup, two renderings:** consumers write this once; **`isMobileCascade`** (synced
6475
+ * from **`TOP_NAV_MOBILE_MQ`**) decides whether the back row renders. Desktop never sees it — the
6476
+ * flyout is a single level of links (see `xpl-top-nav-item`'s cascade-depth notes).
6477
+ * **Panel chrome** is shared with **`xpl-nav-header-menu`** (the account menu): width
6478
+ * (**`--xpl-top-nav-panel-width`**), surface, shadow, radius, and vertical padding all come from the
6479
+ * same selector in `top-nav.css` so the desktop flyout, mobile cascade, and account menu read as one
6480
+ * visual family.
6481
+ * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens
6482
+ * resolve to dark-mode values even when the page root is light (consistent with the rest of the
6483
+ * **`xpl-top-nav`** family).
6484
+ */
6485
+ interface XplTopNavMenu {
6486
+ /**
6487
+ * Accessible name for the list (**`aria-label`** on the host) and the label shown in the mobile cascade back row when drilling back out of this group.
6488
+ */
6489
+ "label"?: string;
6490
+ }
6491
+ /**
6492
+ * @since 0.1.1
6493
+ */
5618
6494
  interface XplUtilityBar {
5619
6495
  /**
5620
6496
  * @property {boolean} - Optional property that defines whether or not the main nav is open at startup.
@@ -6015,6 +6891,12 @@ declare namespace LocalJSX {
6015
6891
  "label": string;
6016
6892
  "open": boolean;
6017
6893
  }
6894
+ interface XplSideNavHeaderItemAttributes {
6895
+ "icon": string;
6896
+ "label": string;
6897
+ "selected": boolean;
6898
+ "type": 'product-label' | 'sub-account';
6899
+ }
6018
6900
  interface XplSideNavItemAttributes {
6019
6901
  "disabled": boolean;
6020
6902
  "expanded": boolean;
@@ -6025,6 +6907,11 @@ declare namespace LocalJSX {
6025
6907
  "link": boolean;
6026
6908
  "selected": boolean;
6027
6909
  }
6910
+ interface XplSideNavSectionAttributes {
6911
+ "collapsible": boolean;
6912
+ "expanded": boolean;
6913
+ "heading": string;
6914
+ }
6028
6915
  interface XplSkeletonAttributes {
6029
6916
  "classNames": string;
6030
6917
  "fullWidth": boolean;
@@ -6064,6 +6951,8 @@ declare namespace LocalJSX {
6064
6951
  "totalSteps": number;
6065
6952
  }
6066
6953
  interface XplTabAttributes {
6954
+ "badge": string;
6955
+ "badgeVariant": BadgePalette;
6067
6956
  "disabled": boolean;
6068
6957
  "groupDisabled": boolean;
6069
6958
  "icon": string;
@@ -6102,11 +6991,12 @@ declare namespace LocalJSX {
6102
6991
  "tagId": string;
6103
6992
  }
6104
6993
  interface XplToastAttributes {
6105
- "variant": 'neutral' | 'warning' | 'success';
6106
- "showIcon": boolean;
6107
6994
  "caption": string;
6108
6995
  "dismissable": boolean;
6996
+ "dismissible": boolean;
6997
+ "showIcon": boolean;
6109
6998
  "timeout": number;
6999
+ "variant": 'neutral' | 'warning' | 'success';
6110
7000
  }
6111
7001
  interface XplToggleAttributes {
6112
7002
  "checked": boolean;
@@ -6142,12 +7032,18 @@ declare namespace LocalJSX {
6142
7032
  }
6143
7033
  interface XplTopNavItemAttributes {
6144
7034
  "active": boolean;
7035
+ "description": string;
6145
7036
  "href": string;
6146
7037
  "icon": string;
6147
7038
  "itemAriaLabel": string;
6148
7039
  "label": string;
7040
+ "open": boolean;
7041
+ "openMode": 'click' | 'hover';
6149
7042
  "selected": boolean;
6150
7043
  }
7044
+ interface XplTopNavMenuAttributes {
7045
+ "label": string;
7046
+ }
6151
7047
  interface XplUtilityBarAttributes {
6152
7048
  "navControl": boolean;
6153
7049
  "isNavOpenAtStartup": boolean;
@@ -6205,7 +7101,9 @@ declare namespace LocalJSX {
6205
7101
  "xpl-secondary-nav": XplSecondaryNav;
6206
7102
  "xpl-select": Omit<XplSelect, keyof XplSelectAttributes> & { [K in keyof XplSelect & keyof XplSelectAttributes]?: XplSelect[K] } & { [K in keyof XplSelect & keyof XplSelectAttributes as `attr:${K}`]?: XplSelectAttributes[K] } & { [K in keyof XplSelect & keyof XplSelectAttributes as `prop:${K}`]?: XplSelect[K] };
6207
7103
  "xpl-side-nav": Omit<XplSideNav, keyof XplSideNavAttributes> & { [K in keyof XplSideNav & keyof XplSideNavAttributes]?: XplSideNav[K] } & { [K in keyof XplSideNav & keyof XplSideNavAttributes as `attr:${K}`]?: XplSideNavAttributes[K] } & { [K in keyof XplSideNav & keyof XplSideNavAttributes as `prop:${K}`]?: XplSideNav[K] };
7104
+ "xpl-side-nav-header-item": Omit<XplSideNavHeaderItem, keyof XplSideNavHeaderItemAttributes> & { [K in keyof XplSideNavHeaderItem & keyof XplSideNavHeaderItemAttributes]?: XplSideNavHeaderItem[K] } & { [K in keyof XplSideNavHeaderItem & keyof XplSideNavHeaderItemAttributes as `attr:${K}`]?: XplSideNavHeaderItemAttributes[K] } & { [K in keyof XplSideNavHeaderItem & keyof XplSideNavHeaderItemAttributes as `prop:${K}`]?: XplSideNavHeaderItem[K] };
6208
7105
  "xpl-side-nav-item": Omit<XplSideNavItem, keyof XplSideNavItemAttributes> & { [K in keyof XplSideNavItem & keyof XplSideNavItemAttributes]?: XplSideNavItem[K] } & { [K in keyof XplSideNavItem & keyof XplSideNavItemAttributes as `attr:${K}`]?: XplSideNavItemAttributes[K] } & { [K in keyof XplSideNavItem & keyof XplSideNavItemAttributes as `prop:${K}`]?: XplSideNavItem[K] };
7106
+ "xpl-side-nav-section": Omit<XplSideNavSection, keyof XplSideNavSectionAttributes> & { [K in keyof XplSideNavSection & keyof XplSideNavSectionAttributes]?: XplSideNavSection[K] } & { [K in keyof XplSideNavSection & keyof XplSideNavSectionAttributes as `attr:${K}`]?: XplSideNavSectionAttributes[K] } & { [K in keyof XplSideNavSection & keyof XplSideNavSectionAttributes as `prop:${K}`]?: XplSideNavSection[K] };
6209
7107
  "xpl-skeleton": Omit<XplSkeleton, keyof XplSkeletonAttributes> & { [K in keyof XplSkeleton & keyof XplSkeletonAttributes]?: XplSkeleton[K] } & { [K in keyof XplSkeleton & keyof XplSkeletonAttributes as `attr:${K}`]?: XplSkeletonAttributes[K] } & { [K in keyof XplSkeleton & keyof XplSkeletonAttributes as `prop:${K}`]?: XplSkeleton[K] };
6210
7108
  "xpl-slideout": Omit<XplSlideout, keyof XplSlideoutAttributes> & { [K in keyof XplSlideout & keyof XplSlideoutAttributes]?: XplSlideout[K] } & { [K in keyof XplSlideout & keyof XplSlideoutAttributes as `attr:${K}`]?: XplSlideoutAttributes[K] } & { [K in keyof XplSlideout & keyof XplSlideoutAttributes as `prop:${K}`]?: XplSlideout[K] };
6211
7109
  "xpl-spotlight": Omit<XplSpotlight, keyof XplSpotlightAttributes> & { [K in keyof XplSpotlight & keyof XplSpotlightAttributes]?: XplSpotlight[K] } & { [K in keyof XplSpotlight & keyof XplSpotlightAttributes as `attr:${K}`]?: XplSpotlightAttributes[K] } & { [K in keyof XplSpotlight & keyof XplSpotlightAttributes as `prop:${K}`]?: XplSpotlight[K] };
@@ -6222,6 +7120,7 @@ declare namespace LocalJSX {
6222
7120
  "xpl-tooltip": Omit<XplTooltip, keyof XplTooltipAttributes> & { [K in keyof XplTooltip & keyof XplTooltipAttributes]?: XplTooltip[K] } & { [K in keyof XplTooltip & keyof XplTooltipAttributes as `attr:${K}`]?: XplTooltipAttributes[K] } & { [K in keyof XplTooltip & keyof XplTooltipAttributes as `prop:${K}`]?: XplTooltip[K] };
6223
7121
  "xpl-top-nav": Omit<XplTopNav, keyof XplTopNavAttributes> & { [K in keyof XplTopNav & keyof XplTopNavAttributes]?: XplTopNav[K] } & { [K in keyof XplTopNav & keyof XplTopNavAttributes as `attr:${K}`]?: XplTopNavAttributes[K] } & { [K in keyof XplTopNav & keyof XplTopNavAttributes as `prop:${K}`]?: XplTopNav[K] };
6224
7122
  "xpl-top-nav-item": Omit<XplTopNavItem, keyof XplTopNavItemAttributes> & { [K in keyof XplTopNavItem & keyof XplTopNavItemAttributes]?: XplTopNavItem[K] } & { [K in keyof XplTopNavItem & keyof XplTopNavItemAttributes as `attr:${K}`]?: XplTopNavItemAttributes[K] } & { [K in keyof XplTopNavItem & keyof XplTopNavItemAttributes as `prop:${K}`]?: XplTopNavItem[K] };
7123
+ "xpl-top-nav-menu": Omit<XplTopNavMenu, keyof XplTopNavMenuAttributes> & { [K in keyof XplTopNavMenu & keyof XplTopNavMenuAttributes]?: XplTopNavMenu[K] } & { [K in keyof XplTopNavMenu & keyof XplTopNavMenuAttributes as `attr:${K}`]?: XplTopNavMenuAttributes[K] } & { [K in keyof XplTopNavMenu & keyof XplTopNavMenuAttributes as `prop:${K}`]?: XplTopNavMenu[K] };
6225
7124
  "xpl-utility-bar": Omit<XplUtilityBar, keyof XplUtilityBarAttributes> & { [K in keyof XplUtilityBar & keyof XplUtilityBarAttributes]?: XplUtilityBar[K] } & { [K in keyof XplUtilityBar & keyof XplUtilityBarAttributes as `attr:${K}`]?: XplUtilityBarAttributes[K] } & { [K in keyof XplUtilityBar & keyof XplUtilityBarAttributes as `prop:${K}`]?: XplUtilityBar[K] };
6226
7125
  }
6227
7126
  }
@@ -6229,34 +7128,106 @@ export { LocalJSX as JSX };
6229
7128
  declare module "@stencil/core" {
6230
7129
  export namespace JSX {
6231
7130
  interface IntrinsicElements {
7131
+ /**
7132
+ * @since 2.0.0
7133
+ */
6232
7134
  "xpl-accordion": LocalJSX.IntrinsicElements["xpl-accordion"] & JSXBase.HTMLAttributes<HTMLXplAccordionElement>;
7135
+ /**
7136
+ * @since 0.5.0
7137
+ */
6233
7138
  "xpl-application-shell": LocalJSX.IntrinsicElements["xpl-application-shell"] & JSXBase.HTMLAttributes<HTMLXplApplicationShellElement>;
7139
+ /**
7140
+ * @since 0.1.1
7141
+ */
6234
7142
  "xpl-avatar": LocalJSX.IntrinsicElements["xpl-avatar"] & JSXBase.HTMLAttributes<HTMLXplAvatarElement>;
7143
+ /**
7144
+ * @since 0.1.2
7145
+ */
6235
7146
  "xpl-backdrop": LocalJSX.IntrinsicElements["xpl-backdrop"] & JSXBase.HTMLAttributes<HTMLXplBackdropElement>;
7147
+ /**
7148
+ * @since 0.1.1
7149
+ */
6236
7150
  "xpl-badge": LocalJSX.IntrinsicElements["xpl-badge"] & JSXBase.HTMLAttributes<HTMLXplBadgeElement>;
7151
+ /**
7152
+ * @since 2.6.0
7153
+ */
6237
7154
  "xpl-banner": LocalJSX.IntrinsicElements["xpl-banner"] & JSXBase.HTMLAttributes<HTMLXplBannerElement>;
6238
7155
  "xpl-breadcrumb-item": LocalJSX.IntrinsicElements["xpl-breadcrumb-item"] & JSXBase.HTMLAttributes<HTMLXplBreadcrumbItemElement>;
6239
7156
  "xpl-breadcrumbs": LocalJSX.IntrinsicElements["xpl-breadcrumbs"] & JSXBase.HTMLAttributes<HTMLXplBreadcrumbsElement>;
7157
+ /**
7158
+ * @since 0.1.1
7159
+ */
6240
7160
  "xpl-button": LocalJSX.IntrinsicElements["xpl-button"] & JSXBase.HTMLAttributes<HTMLXplButtonElement>;
7161
+ /**
7162
+ * @since 0.4.0
7163
+ */
6241
7164
  "xpl-button-row": LocalJSX.IntrinsicElements["xpl-button-row"] & JSXBase.HTMLAttributes<HTMLXplButtonRowElement>;
7165
+ /**
7166
+ * @since 2.0.0
7167
+ */
6242
7168
  "xpl-calendar": LocalJSX.IntrinsicElements["xpl-calendar"] & JSXBase.HTMLAttributes<HTMLXplCalendarElement>;
7169
+ /**
7170
+ * @since 0.1.1
7171
+ */
6243
7172
  "xpl-checkbox": LocalJSX.IntrinsicElements["xpl-checkbox"] & JSXBase.HTMLAttributes<HTMLXplCheckboxElement>;
7173
+ /**
7174
+ * @since 0.1.1
7175
+ */
6244
7176
  "xpl-choicelist": LocalJSX.IntrinsicElements["xpl-choicelist"] & JSXBase.HTMLAttributes<HTMLXplChoicelistElement>;
7177
+ /**
7178
+ * @since 0.1.2
7179
+ */
6245
7180
  "xpl-content-area": LocalJSX.IntrinsicElements["xpl-content-area"] & JSXBase.HTMLAttributes<HTMLXplContentAreaElement>;
7181
+ /**
7182
+ * @since 1.0.0
7183
+ */
6246
7184
  "xpl-dashboard": LocalJSX.IntrinsicElements["xpl-dashboard"] & JSXBase.HTMLAttributes<HTMLXplDashboardElement>;
7185
+ /**
7186
+ * @since 1.0.0
7187
+ */
6247
7188
  "xpl-data-card": LocalJSX.IntrinsicElements["xpl-data-card"] & JSXBase.HTMLAttributes<HTMLXplDataCardElement>;
7189
+ /**
7190
+ * @since 0.3.0
7191
+ */
6248
7192
  "xpl-divider": LocalJSX.IntrinsicElements["xpl-divider"] & JSXBase.HTMLAttributes<HTMLXplDividerElement>;
7193
+ /**
7194
+ * @since 0.4.0
7195
+ */
6249
7196
  "xpl-dropdown": LocalJSX.IntrinsicElements["xpl-dropdown"] & JSXBase.HTMLAttributes<HTMLXplDropdownElement>;
6250
7197
  "xpl-dropdown-group": LocalJSX.IntrinsicElements["xpl-dropdown-group"] & JSXBase.HTMLAttributes<HTMLXplDropdownGroupElement>;
6251
7198
  "xpl-dropdown-heading": LocalJSX.IntrinsicElements["xpl-dropdown-heading"] & JSXBase.HTMLAttributes<HTMLXplDropdownHeadingElement>;
6252
7199
  "xpl-dropdown-option": LocalJSX.IntrinsicElements["xpl-dropdown-option"] & JSXBase.HTMLAttributes<HTMLXplDropdownOptionElement>;
7200
+ /**
7201
+ * @since 1.4.0
7202
+ */
6253
7203
  "xpl-dynamic-table": LocalJSX.IntrinsicElements["xpl-dynamic-table"] & JSXBase.HTMLAttributes<HTMLXplDynamicTableElement>;
7204
+ /**
7205
+ * @since 1.3.0
7206
+ */
6254
7207
  "xpl-dynamic-table-cell": LocalJSX.IntrinsicElements["xpl-dynamic-table-cell"] & JSXBase.HTMLAttributes<HTMLXplDynamicTableCellElement>;
7208
+ /**
7209
+ * @since 1.3.0
7210
+ */
6255
7211
  "xpl-dynamic-table-row": LocalJSX.IntrinsicElements["xpl-dynamic-table-row"] & JSXBase.HTMLAttributes<HTMLXplDynamicTableRowElement>;
7212
+ /**
7213
+ * @since 0.4.0
7214
+ */
6256
7215
  "xpl-grid": LocalJSX.IntrinsicElements["xpl-grid"] & JSXBase.HTMLAttributes<HTMLXplGridElement>;
7216
+ /**
7217
+ * @since 0.4.0
7218
+ */
6257
7219
  "xpl-grid-item": LocalJSX.IntrinsicElements["xpl-grid-item"] & JSXBase.HTMLAttributes<HTMLXplGridItemElement>;
7220
+ /**
7221
+ * @since 1.2.0
7222
+ */
6258
7223
  "xpl-header-accordion": LocalJSX.IntrinsicElements["xpl-header-accordion"] & JSXBase.HTMLAttributes<HTMLXplHeaderAccordionElement>;
7224
+ /**
7225
+ * @since 1.0.0
7226
+ */
6259
7227
  "xpl-icon": LocalJSX.IntrinsicElements["xpl-icon"] & JSXBase.HTMLAttributes<HTMLXplIconElement>;
7228
+ /**
7229
+ * @since 0.3.0
7230
+ */
6260
7231
  "xpl-input": LocalJSX.IntrinsicElements["xpl-input"] & JSXBase.HTMLAttributes<HTMLXplInputElement>;
6261
7232
  "xpl-input-color": LocalJSX.IntrinsicElements["xpl-input-color"] & JSXBase.HTMLAttributes<HTMLXplInputColorElement>;
6262
7233
  "xpl-input-date": LocalJSX.IntrinsicElements["xpl-input-date"] & JSXBase.HTMLAttributes<HTMLXplInputDateElement>;
@@ -6267,10 +7238,22 @@ declare module "@stencil/core" {
6267
7238
  "xpl-input-phone": LocalJSX.IntrinsicElements["xpl-input-phone"] & JSXBase.HTMLAttributes<HTMLXplInputPhoneElement>;
6268
7239
  "xpl-input-search": LocalJSX.IntrinsicElements["xpl-input-search"] & JSXBase.HTMLAttributes<HTMLXplInputSearchElement>;
6269
7240
  "xpl-input-time": LocalJSX.IntrinsicElements["xpl-input-time"] & JSXBase.HTMLAttributes<HTMLXplInputTimeElement>;
7241
+ /**
7242
+ * @since 1.9.1
7243
+ */
6270
7244
  "xpl-large-card": LocalJSX.IntrinsicElements["xpl-large-card"] & JSXBase.HTMLAttributes<HTMLXplLargeCardElement>;
7245
+ /**
7246
+ * @since 0.4.0
7247
+ */
6271
7248
  "xpl-list": LocalJSX.IntrinsicElements["xpl-list"] & JSXBase.HTMLAttributes<HTMLXplListElement>;
6272
7249
  "xpl-list-item": LocalJSX.IntrinsicElements["xpl-list-item"] & JSXBase.HTMLAttributes<HTMLXplListItemElement>;
7250
+ /**
7251
+ * @since 0.1.2
7252
+ */
6273
7253
  "xpl-main-nav": LocalJSX.IntrinsicElements["xpl-main-nav"] & JSXBase.HTMLAttributes<HTMLXplMainNavElement>;
7254
+ /**
7255
+ * @since 1.1.0
7256
+ */
6274
7257
  "xpl-modal": LocalJSX.IntrinsicElements["xpl-modal"] & JSXBase.HTMLAttributes<HTMLXplModalElement>;
6275
7258
  /**
6276
7259
  * Profile / account block (username, email, default slot for **`xpl-top-nav-item`** / **`xpl-divider`**).
@@ -6291,22 +7274,47 @@ declare module "@stencil/core" {
6291
7274
  * values even when the page root is light (same contract as **`xpl-top-nav`** / **`xpl-top-nav-item`**).
6292
7275
  */
6293
7276
  "xpl-nav-header-menu": LocalJSX.IntrinsicElements["xpl-nav-header-menu"] & JSXBase.HTMLAttributes<HTMLXplNavHeaderMenuElement>;
7277
+ /**
7278
+ * @since 0.1.2
7279
+ */
6294
7280
  "xpl-nav-item": LocalJSX.IntrinsicElements["xpl-nav-item"] & JSXBase.HTMLAttributes<HTMLXplNavItemElement>;
7281
+ /**
7282
+ * @since 0.1.1
7283
+ */
6295
7284
  "xpl-pagination": LocalJSX.IntrinsicElements["xpl-pagination"] & JSXBase.HTMLAttributes<HTMLXplPaginationElement>;
6296
7285
  /**
6297
7286
  * A stateless container that defines a section on a page and can house any
6298
7287
  * type of content. Panels are not dismissible and may contain a top accent.
7288
+ * @since 2.6.0
6299
7289
  */
6300
7290
  "xpl-panel": LocalJSX.IntrinsicElements["xpl-panel"] & JSXBase.HTMLAttributes<HTMLXplPanelElement>;
7291
+ /**
7292
+ * @since 2.0.0
7293
+ */
6301
7294
  "xpl-popover": LocalJSX.IntrinsicElements["xpl-popover"] & JSXBase.HTMLAttributes<HTMLXplPopoverElement>;
7295
+ /**
7296
+ * @since 2.6.0
7297
+ */
6302
7298
  "xpl-progress-bar": LocalJSX.IntrinsicElements["xpl-progress-bar"] & JSXBase.HTMLAttributes<HTMLXplProgressBarElement>;
7299
+ /**
7300
+ * @since 2.7.0
7301
+ */
6303
7302
  "xpl-progress-indicator": LocalJSX.IntrinsicElements["xpl-progress-indicator"] & JSXBase.HTMLAttributes<HTMLXplProgressIndicatorElement>;
7303
+ /**
7304
+ * @since 0.1.1
7305
+ */
6304
7306
  "xpl-radio": LocalJSX.IntrinsicElements["xpl-radio"] & JSXBase.HTMLAttributes<HTMLXplRadioElement>;
7307
+ /**
7308
+ * @since 0.3.0
7309
+ */
6305
7310
  "xpl-secondary-nav": LocalJSX.IntrinsicElements["xpl-secondary-nav"] & JSXBase.HTMLAttributes<HTMLXplSecondaryNavElement>;
7311
+ /**
7312
+ * @since 0.4.0
7313
+ */
6306
7314
  "xpl-select": LocalJSX.IntrinsicElements["xpl-select"] & JSXBase.HTMLAttributes<HTMLXplSelectElement>;
6307
7315
  /**
6308
- * Slot-based sidebar for app navigation: a scrollable main `section` and a fixed
6309
- * `nav-footer`. Compose with `xpl-side-nav-item` for rows.
7316
+ * Slot-based sidebar for app navigation: a scrollable `nav-header` + `section`
7317
+ * area and a fixed `nav-footer`. Compose with `xpl-side-nav-item` for rows.
6310
7318
  * **Mobile (v2):** below the Tailwind `md` breakpoint, the sidebar collapses to a
6311
7319
  * ~56px top bar with a toggle button (`sidebar-left-show` / `sidebar-left-hide`).
6312
7320
  * Activating the toggle opens a drawer containing the `section` + `nav-footer`
@@ -6318,8 +7326,33 @@ declare module "@stencil/core" {
6318
7326
  * the `openChange` event, and the `toggle()` / `setOpen()` methods.
6319
7327
  * **v2 breaking change (beta):** consumers who wrapped their own mobile toggle
6320
7328
  * around `xpl-side-nav` should remove it — the toggle and drawer are now built in.
7329
+ * @since 2.6.0
6321
7330
  */
6322
7331
  "xpl-side-nav": LocalJSX.IntrinsicElements["xpl-side-nav"] & JSXBase.HTMLAttributes<HTMLXplSideNavElement>;
7332
+ /**
7333
+ * Header row for `xpl-side-nav`'s `nav-header` slot (Figma `<navHeaderItem>`,
7334
+ * node `51299-9007`). Two types:
7335
+ * - **`product-label` (default)** — a non-interactive `<div>` row that shows the
7336
+ * current product/area name in a subdued color. No click behavior.
7337
+ * - **`sub-account`** — an interactive `<button>` row (e.g. a location / account
7338
+ * switcher). Emits `navigate` on activation (pointer click or keyboard); the
7339
+ * consumer wires this to open a modal or other entity-switching experience.
7340
+ * When no `slot="trailing"` content is provided, an auto chevron
7341
+ * (`chevron-expand-y`, a static dual-arrow glyph — no rotation) renders by default.
7342
+ * Both types support `slot="leading"` / `slot="trailing"` (the `icon` prop is a
7343
+ * convenience shorthand for `slot="leading"`, same as `xpl-side-nav-item`) so they
7344
+ * can scale to future uses. Unlike `xpl-side-nav-item`, the leading/trailing
7345
+ * columns are NOT unconditionally reserved — they only render when there is
7346
+ * content, matching the Figma variants where the leading icon is an optional toggle.
7347
+ * **Note on the `sub-account` hover / selected visual:** the interactive row
7348
+ * mirrors `xpl-side-nav-item` — the hover and selected backgrounds fill a single
7349
+ * `__content` pill that wraps the leading icon + label + trailing chevron, with
7350
+ * an 8px (`--xpl-border-radius-default`) radius. The pill insets 8px from the nav
7351
+ * edge (an 8px gutter on the button) so it lines up with the item rows below it,
7352
+ * and hover/selected therefore highlight the whole row content rather than a
7353
+ * partial fragment.
7354
+ */
7355
+ "xpl-side-nav-header-item": LocalJSX.IntrinsicElements["xpl-side-nav-header-item"] & JSXBase.HTMLAttributes<HTMLXplSideNavHeaderItemElement>;
6323
7356
  /**
6324
7357
  * Navigation row for `xpl-side-nav`. Renders a button (default) or a slot-only
6325
7358
  * anchor container (`link` mode). Three slot positions are available:
@@ -6345,25 +7378,85 @@ declare module "@stencil/core" {
6345
7378
  * | (no trailing slot) | `slot="trailing"` | Add for custom trailing content |
6346
7379
  */
6347
7380
  "xpl-side-nav-item": LocalJSX.IntrinsicElements["xpl-side-nav-item"] & JSXBase.HTMLAttributes<HTMLXplSideNavItemElement>;
7381
+ /**
7382
+ * Grouping / accordion header for `xpl-side-nav`. Wraps nested `xpl-side-nav-item`
7383
+ * (and optional divider separators) elements in the default slot and collapses
7384
+ * them as a unit.
7385
+ * Two variants:
7386
+ * - **Collapsible (default, `collapsible=true`)** — a `<button>` header with a
7387
+ * chevron (`chevron-right` collapsed / `chevron-down` expanded, no rotation —
7388
+ * the glyph itself swaps). Click toggles `expanded` and emits `expandedChange`.
7389
+ * - **Static (`collapsible=false`)** — a non-interactive title row with no chevron;
7390
+ * children are always shown. Used for a static section label (e.g. a future
7391
+ * product-name / location-changer header).
7392
+ * Unlike `xpl-side-nav-item[has-children]`, section children are **not indented**
7393
+ * — they align with top-level items at the same leading-icon column.
7394
+ * `slot="badge"` renders an optional badge (e.g. `xpl-badge`) in the header title
7395
+ * row. The wrapper is suppressed when the slot is empty.
7396
+ */
7397
+ "xpl-side-nav-section": LocalJSX.IntrinsicElements["xpl-side-nav-section"] & JSXBase.HTMLAttributes<HTMLXplSideNavSectionElement>;
7398
+ /**
7399
+ * @since 2.3.6
7400
+ */
6348
7401
  "xpl-skeleton": LocalJSX.IntrinsicElements["xpl-skeleton"] & JSXBase.HTMLAttributes<HTMLXplSkeletonElement>;
7402
+ /**
7403
+ * @since 1.1.0
7404
+ */
6349
7405
  "xpl-slideout": LocalJSX.IntrinsicElements["xpl-slideout"] & JSXBase.HTMLAttributes<HTMLXplSlideoutElement>;
7406
+ /**
7407
+ * @since 2.7.0
7408
+ */
6350
7409
  "xpl-spotlight": LocalJSX.IntrinsicElements["xpl-spotlight"] & JSXBase.HTMLAttributes<HTMLXplSpotlightElement>;
7410
+ /**
7411
+ * @since 2.3.8
7412
+ */
6351
7413
  "xpl-tab": LocalJSX.IntrinsicElements["xpl-tab"] & JSXBase.HTMLAttributes<HTMLXplTabElement>;
7414
+ /**
7415
+ * @since 2.3.8
7416
+ */
6352
7417
  "xpl-tab-panel": LocalJSX.IntrinsicElements["xpl-tab-panel"] & JSXBase.HTMLAttributes<HTMLXplTabPanelElement>;
7418
+ /**
7419
+ * @since 0.1.1
7420
+ */
6353
7421
  "xpl-table": LocalJSX.IntrinsicElements["xpl-table"] & JSXBase.HTMLAttributes<HTMLXplTableElement>;
7422
+ /**
7423
+ * @since 1.0.0
7424
+ */
6354
7425
  "xpl-table-header": LocalJSX.IntrinsicElements["xpl-table-header"] & JSXBase.HTMLAttributes<HTMLXplTableHeaderElement>;
7426
+ /**
7427
+ * @since 1.3.0
7428
+ */
6355
7429
  "xpl-table-header-cell": LocalJSX.IntrinsicElements["xpl-table-header-cell"] & JSXBase.HTMLAttributes<HTMLXplTableHeaderCellElement>;
7430
+ /**
7431
+ * @since 2.3.8
7432
+ */
6356
7433
  "xpl-tabs": LocalJSX.IntrinsicElements["xpl-tabs"] & JSXBase.HTMLAttributes<HTMLXplTabsElement>;
7434
+ /**
7435
+ * @since 0.4.0
7436
+ */
6357
7437
  "xpl-tag": LocalJSX.IntrinsicElements["xpl-tag"] & JSXBase.HTMLAttributes<HTMLXplTagElement>;
7438
+ /**
7439
+ * @since 1.2.0
7440
+ */
6358
7441
  "xpl-toast": LocalJSX.IntrinsicElements["xpl-toast"] & JSXBase.HTMLAttributes<HTMLXplToastElement>;
7442
+ /**
7443
+ * @since 0.3.0
7444
+ */
6359
7445
  "xpl-toggle": LocalJSX.IntrinsicElements["xpl-toggle"] & JSXBase.HTMLAttributes<HTMLXplToggleElement>;
7446
+ /**
7447
+ * @since 1.2.0
7448
+ */
6360
7449
  "xpl-toolbar": LocalJSX.IntrinsicElements["xpl-toolbar"] & JSXBase.HTMLAttributes<HTMLXplToolbarElement>;
7450
+ /**
7451
+ * @since 1.7.0
7452
+ */
6361
7453
  "xpl-tooltip": LocalJSX.IntrinsicElements["xpl-tooltip"] & JSXBase.HTMLAttributes<HTMLXplTooltipElement>;
6362
7454
  /**
6363
7455
  * Horizontal top navigation with **`left-aside`** and a **right rail**: **`right-aside`** then **user menu**
6364
7456
  * (see **`.xpl-top-nav__right-rail`** in `render()`). The account menu uses an internal **`xpl-popover`** (**`bottom-end`**, **`display="menu"`**): built-in trigger uses **`child-account-label`** (prop / attribute) as the label beside a trailing **`chevron-down`** on **`xpl-button`** (**`icon`** / **`iconPosition="end"`**), or **`slot="user-menu-trigger"`** for a custom trigger; panel from **`slot="user-menu"`** (e.g. **`xpl-nav-header-menu`**).
6365
7457
  * Optional **`nav-control`** and **`navOpen`**. **`left-aside`** uses **`role="list"`** for primary **`xpl-top-nav-item`** rows (**`role="listitem"`** on each item host). The built-in **`xpl-top-nav__brand`** item omits **`listitem`** (it is not a child of that list). **`label`** maps to **`nav`** **`aria-label`**. Opening state is internal (not a prop) — use **`navOpen`** and host **`xpl-top-nav--open`** for styling.
6366
7458
  * **Escape:** With **`nav-control`**, **Escape** closes the mobile drawer and emits **`navOpen`** **`false`** (skips while **any** descendant **`xpl-popover`** is open — detected from each popover’s inner **`.xpl-popover--is-open`** marker — or when a **`xpl-top-nav-item`** dropdown is open — capture/bubble order). Focus returns to the nav toggle after the drawer closes (**Escape** or second toggle click).
7459
+ * **Outside click:** With **`nav-control`**, a click outside the drawer panel (**`.xpl-top-nav__left-primary`**) also closes it and emits **`navOpen`** **`false`** (document **capture**, mirroring **`xpl-top-nav-item`**); it skips clicks on the hamburger toggle and while a descendant **`xpl-popover`** is open, and does not move focus.
6367
7460
  * **`xpl-top-nav-item`** **`slot="dropdown"`** uses document **capture** for **Escape** first; the shell uses **bubble**
6368
7461
  * on **`ownerDocument`** so nested dropdowns close before the drawer.
6369
7462
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens under this subtree
@@ -6380,25 +7473,52 @@ declare module "@stencil/core" {
6380
7473
  * **`slot="right-aside-mobile"`** (below profile, above the list; narrow-only CSS in **`top-nav.css`**) per Figma.
6381
7474
  * **Account menu vs drawer:** Opening the built-in account **`xpl-popover`** while the mobile drawer is open **closes the drawer**
6382
7475
  * and emits **`navOpen(false)`** so the two layers do not stack.
7476
+ * @since 2.7.0
6383
7477
  */
6384
7478
  "xpl-top-nav": LocalJSX.IntrinsicElements["xpl-top-nav"] & JSXBase.HTMLAttributes<HTMLXplTopNavElement>;
6385
7479
  /**
6386
- * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`**. The host uses **`role="listitem"`** when the row
6387
- * participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on **`xpl-top-nav`** (list host is
6388
- * **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of **`xpl-top-nav`**), or default-slot rows
6389
- * under **`xpl-nav-header-menu`**. That flag is
7480
+ * Single nav row for **`xpl-top-nav`** / **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. The host uses
7481
+ * **`role="listitem"`** when the row participates in a list: a **`role="list"`** parent, **`slot="left-aside"`** on
7482
+ * **`xpl-top-nav`** (list host is **`.xpl-top-nav__left-primary`** while slotted nodes stay light-DOM children of
7483
+ * **`xpl-top-nav`**), or default-slot rows under **`xpl-nav-header-menu`** / **`xpl-top-nav-menu`**. That flag is
6390
7484
  * kept in **`@State`** and refreshed after render plus via **`MutationObserver`** on the host (**`class`**, **`slot`**) and
6391
7485
  * on **`parentElement`** (**`role`**) or on **`.xpl-top-nav__left-primary`** (**`role`**) for **`slot="left-aside"`** under **`xpl-top-nav`**) so DOM context changes
6392
7486
  * without a full reconnect still re-sync. The internal
6393
7487
  * **`xpl-top-nav__brand`** row omits **`listitem`** (it sits in **`.xpl-top-nav__brand-bar`**, not **`.xpl-top-nav__left-primary`**),
6394
7488
  * as do **`slot="right-aside-mobile"`** rows (not a list). **`slot="dropdown"`** uses a local **`.xpl-top-nav-item__dropdown`**
6395
7489
  * panel (not **`xpl-dropdown`**); see **`TECH_DEBT.md`**.
7490
+ * **This component does triple duty:** a plain bar item, a dropdown trigger (**`slot="dropdown"`** present), and a
7491
+ * dropdown/menu **row** (nested inside **`xpl-nav-header-menu`** or **`xpl-top-nav-menu`**). The **`description`** prop
7492
+ * only applies in the row context — bar items and triggers do not show it in Figma.
6396
7493
  * **Default slot (no `label`):** do not put **`xpl-top-nav-item__inner`** or other **`xpl-top-nav-item__*`** classes on
6397
7494
  * custom trigger content — the component renders the inner wrapper and BEM elements.
6398
7495
  * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens resolve to dark-mode
6399
7496
  * values even when the page root is light (consistent with **`xpl-top-nav`**).
6400
7497
  */
6401
7498
  "xpl-top-nav-item": LocalJSX.IntrinsicElements["xpl-top-nav-item"] & JSXBase.HTMLAttributes<HTMLXplTopNavItemElement>;
7499
+ /**
7500
+ * Thin grouping container for **`xpl-top-nav-item`** rows — the panel content for a desktop flyout
7501
+ * (**`slot="dropdown"`** on the parent **`xpl-top-nav-item`**) and, on small screens, the **mobile
7502
+ * cascade**: the same markup drills in to a **Level 2** view in place, with an auto-rendered **back
7503
+ * row** (leading **`chevron-left`** + this component's **`label`**) as the first row. Tapping the back
7504
+ * row closes the parent trigger's dropdown (**`closeMenu()`**), returning to **Level 1** and restoring
7505
+ * focus to the parent trigger. No item logic otherwise lives here — row behavior (icons, description,
7506
+ * links, nested dropdowns) is entirely **`xpl-top-nav-item`**.
7507
+ * **One authoring markup, two renderings:** consumers write this once; **`isMobileCascade`** (synced
7508
+ * from **`TOP_NAV_MOBILE_MQ`**) decides whether the back row renders. Desktop never sees it — the
7509
+ * flyout is a single level of links (see `xpl-top-nav-item`'s cascade-depth notes).
7510
+ * **Panel chrome** is shared with **`xpl-nav-header-menu`** (the account menu): width
7511
+ * (**`--xpl-top-nav-panel-width`**), surface, shadow, radius, and vertical padding all come from the
7512
+ * same selector in `top-nav.css` so the desktop flyout, mobile cascade, and account menu read as one
7513
+ * visual family.
7514
+ * **Theming:** The host always includes Foundation’s **`dark`** class so **`--xpl-*`** purpose tokens
7515
+ * resolve to dark-mode values even when the page root is light (consistent with the rest of the
7516
+ * **`xpl-top-nav`** family).
7517
+ */
7518
+ "xpl-top-nav-menu": LocalJSX.IntrinsicElements["xpl-top-nav-menu"] & JSXBase.HTMLAttributes<HTMLXplTopNavMenuElement>;
7519
+ /**
7520
+ * @since 0.1.1
7521
+ */
6402
7522
  "xpl-utility-bar": LocalJSX.IntrinsicElements["xpl-utility-bar"] & JSXBase.HTMLAttributes<HTMLXplUtilityBarElement>;
6403
7523
  }
6404
7524
  }