@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
@@ -1,36 +1,56 @@
1
1
  import { Host, h, } from "@stencil/core";
2
+ import { TimerManager, isBrowser } from "../../../utils/lifecycle";
3
+ import { TOP_NAV_MOBILE_MQ } from "../top-nav-constants";
4
+ import { TOP_NAV_ITEM_HOVER_CLOSE_DELAY_MS, TOP_NAV_ITEM_HOVER_OPEN_MQ, } from "./top-nav-item-constants";
5
+ const TIMER = {
6
+ hasDropdownSync: 'hasDropdownSync',
7
+ postRender: 'postRender',
8
+ focusTriggerAfterEscape: 'focusTriggerAfterEscape',
9
+ hoverClose: 'hoverClose',
10
+ };
2
11
  export class TopNavItem {
3
12
  constructor() {
13
+ this.dropdownPanelId = `xpl-top-nav-item-dropdown-${Math.random().toString(36).slice(2, 11)}`;
14
+ this.hoverOpened = false;
15
+ this.timers = new TimerManager();
16
+ this.hasActiveDescendant = false;
4
17
  this.hasDropdown = false;
18
+ this.isLeadingIconSlotPresent = false;
19
+ this.isMobileViewport = false;
5
20
  this.hostListitemRole = false;
6
- this.open = false;
21
+ this.isTrailingIconSlotPresent = false;
7
22
  this.active = false;
8
23
  this.icon = '';
24
+ this.open = false;
25
+ this.openMode = 'click';
9
26
  this.selected = false;
10
27
  this.onDocClickCapture = (e) => {
11
- if (!this.hasDropdown || !this.open) {
28
+ if (!this.hasDropdown || !this.open)
12
29
  return;
13
- }
14
30
  const target = e.target;
15
31
  if (target && !this.el.contains(target)) {
16
32
  this.open = false;
17
33
  }
18
34
  };
19
35
  this.onDocKeyDownCapture = (e) => {
20
- if (!this.hasDropdown || !this.open) {
36
+ if (!this.hasDropdown || !this.open)
21
37
  return;
22
- }
23
38
  if (e.key === 'Escape') {
24
39
  e.preventDefault();
25
40
  e.stopPropagation();
26
41
  this.open = false;
42
+ this.focusTriggerAfterEscape();
27
43
  }
28
44
  };
29
45
  this.handleClick = (e) => {
30
46
  if (this.hasDropdown) {
31
47
  e.preventDefault();
32
48
  e.stopPropagation();
33
- this.broadcastCloseOtherDropdownHosts();
49
+ this.timers.clearCoalesced(TIMER.hoverClose);
50
+ if (this.open && this.hoverOpened && this.hoverModeActive() && e.detail > 0) {
51
+ return;
52
+ }
53
+ this.hoverOpened = false;
34
54
  this.open = !this.open;
35
55
  return;
36
56
  }
@@ -38,44 +58,66 @@ export class TopNavItem {
38
58
  };
39
59
  this.handleKeyDown = (e) => {
40
60
  const isLinkMode = this.href != null && !this.hasDropdown;
41
- if (isLinkMode) {
42
- if (e.key === 'Enter') {
43
- return;
44
- }
45
- if (e.key === ' ') {
46
- e.preventDefault();
47
- const anchor = this.el.querySelector('.xpl-top-nav-item__inner');
48
- anchor === null || anchor === void 0 ? void 0 : anchor.click();
49
- return;
50
- }
61
+ if (isLinkMode && e.key === ' ') {
62
+ e.preventDefault();
63
+ const anchor = this.el.querySelector('.xpl-top-nav-item__inner');
64
+ anchor?.click();
51
65
  }
52
- if (e.key !== 'Enter' && e.key !== ' ')
66
+ };
67
+ this.onMobileViewportChange = () => {
68
+ this.isMobileViewport = this.mobileMq?.matches ?? false;
69
+ };
70
+ this.handleMouseEnter = () => {
71
+ if (!this.hasDropdown || !this.hoverModeActive()) {
53
72
  return;
54
- e.preventDefault();
55
- this.handleClick(this.syntheticActivationClickFromKeyboard(e));
73
+ }
74
+ this.timers.clearCoalesced(TIMER.hoverClose);
75
+ if (!this.open) {
76
+ this.hoverOpened = true;
77
+ this.open = true;
78
+ }
79
+ };
80
+ this.handleMouseLeave = () => {
81
+ if (!this.hasDropdown || !this.open || !this.hoverOpened) {
82
+ return;
83
+ }
84
+ this.timers.scheduleCoalesced(TIMER.hoverClose, () => {
85
+ if (!this.hoverOpened || this.el.contains(this.el.ownerDocument.activeElement)) {
86
+ return;
87
+ }
88
+ this.open = false;
89
+ }, TOP_NAV_ITEM_HOVER_CLOSE_DELAY_MS);
56
90
  };
57
91
  }
58
92
  onHasDropdownChanged() {
59
- if (!this.hasDropdown) {
93
+ if (!this.hasDropdown)
60
94
  this.open = false;
61
- }
62
95
  this.syncDropdownDocListeners();
63
96
  }
97
+ onOpenChanged(next) {
98
+ this.openChange.emit(next);
99
+ if (!next)
100
+ this.hoverOpened = false;
101
+ if (next && this.hasDropdown)
102
+ this.broadcastCloseOtherDropdownHosts();
103
+ }
64
104
  connectedCallback() {
105
+ if (isBrowser() && typeof window.matchMedia === 'function') {
106
+ this.hoverOpenMq = window.matchMedia(TOP_NAV_ITEM_HOVER_OPEN_MQ);
107
+ this.mobileMq = window.matchMedia(TOP_NAV_MOBILE_MQ);
108
+ this.mobileMq.addEventListener('change', this.onMobileViewportChange);
109
+ this.isMobileViewport = this.mobileMq.matches;
110
+ }
65
111
  this.syncHostListitemRole();
66
112
  this.syncHasDropdownFromDom();
67
113
  this.syncDropdownDocListeners();
68
114
  this.connectDropdownSlotObserver();
69
115
  }
70
116
  disconnectedCallback() {
71
- if (this.deferredHasDropdownObserverSyncTimeoutId !== undefined) {
72
- clearTimeout(this.deferredHasDropdownObserverSyncTimeoutId);
73
- this.deferredHasDropdownObserverSyncTimeoutId = undefined;
74
- }
75
- if (this.deferredPostRenderTopNavItemTimeoutId !== undefined) {
76
- clearTimeout(this.deferredPostRenderTopNavItemTimeoutId);
77
- this.deferredPostRenderTopNavItemTimeoutId = undefined;
78
- }
117
+ this.timers.dispose();
118
+ this.hoverOpenMq = undefined;
119
+ this.mobileMq?.removeEventListener('change', this.onMobileViewportChange);
120
+ this.mobileMq = undefined;
79
121
  this.disconnectDropdownSlotObserver();
80
122
  this.disconnectListitemContextObservers();
81
123
  const doc = this.el.ownerDocument;
@@ -85,7 +127,6 @@ export class TopNavItem {
85
127
  componentWillLoad() {
86
128
  this.syncHostListitemRole();
87
129
  this.syncHasDropdownFromDom();
88
- this.syncDropdownDocListeners();
89
130
  }
90
131
  componentWillRender() {
91
132
  this.disconnectDropdownSlotObserver();
@@ -99,23 +140,35 @@ export class TopNavItem {
99
140
  this.open = false;
100
141
  }
101
142
  }
143
+ async closeMenu() {
144
+ if (!this.hasDropdown)
145
+ return;
146
+ this.open = false;
147
+ }
148
+ async openMenu() {
149
+ if (!this.hasDropdown)
150
+ return;
151
+ this.timers.clearCoalesced(TIMER.hoverClose);
152
+ this.hoverOpened = false;
153
+ this.open = true;
154
+ }
155
+ async toggleMenu() {
156
+ if (!this.hasDropdown)
157
+ return;
158
+ this.open = !this.open;
159
+ }
102
160
  scheduleHasDropdownSyncFromObserver() {
103
- if (this.deferredHasDropdownObserverSyncTimeoutId !== undefined) {
104
- clearTimeout(this.deferredHasDropdownObserverSyncTimeoutId);
105
- }
106
- this.deferredHasDropdownObserverSyncTimeoutId = setTimeout(() => {
107
- this.deferredHasDropdownObserverSyncTimeoutId = undefined;
161
+ this.timers.scheduleCoalesced(TIMER.hasDropdownSync, () => {
108
162
  if (!this.el.isConnected) {
109
163
  return;
110
164
  }
111
165
  this.syncHasDropdownFromDom();
112
- }, 0);
166
+ });
113
167
  }
114
168
  connectDropdownSlotObserver() {
115
169
  this.disconnectDropdownSlotObserver();
116
- if (typeof MutationObserver === 'undefined') {
170
+ if (typeof MutationObserver === 'undefined')
117
171
  return;
118
- }
119
172
  this.dropdownSlotObserver = new MutationObserver(() => {
120
173
  this.scheduleHasDropdownSyncFromObserver();
121
174
  });
@@ -127,15 +180,13 @@ export class TopNavItem {
127
180
  });
128
181
  }
129
182
  disconnectDropdownSlotObserver() {
130
- var _a;
131
- (_a = this.dropdownSlotObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
183
+ this.dropdownSlotObserver?.disconnect();
132
184
  this.dropdownSlotObserver = undefined;
133
185
  }
134
186
  disconnectListitemContextObservers() {
135
- var _a, _b;
136
- (_a = this.parentListitemContextObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
187
+ this.parentListitemContextObserver?.disconnect();
137
188
  this.parentListitemContextObserver = undefined;
138
- (_b = this.selfListitemContextObserver) === null || _b === void 0 ? void 0 : _b.disconnect();
189
+ this.selfListitemContextObserver?.disconnect();
139
190
  this.selfListitemContextObserver = undefined;
140
191
  }
141
192
  connectListitemContextObservers() {
@@ -160,7 +211,7 @@ export class TopNavItem {
160
211
  const leftPrimaryListHost = isTopNavLeftAside
161
212
  ? parent.querySelector('.xpl-top-nav__left-primary')
162
213
  : null;
163
- const observeTarget = leftPrimaryListHost !== null && leftPrimaryListHost !== void 0 ? leftPrimaryListHost : parent;
214
+ const observeTarget = leftPrimaryListHost ?? parent;
164
215
  this.parentListitemContextObserver.observe(observeTarget, {
165
216
  attributes: true,
166
217
  attributeFilter: ['role'],
@@ -169,20 +220,20 @@ export class TopNavItem {
169
220
  }
170
221
  }
171
222
  schedulePostRenderTopNavItemWork() {
172
- if (this.deferredPostRenderTopNavItemTimeoutId !== undefined) {
173
- clearTimeout(this.deferredPostRenderTopNavItemTimeoutId);
174
- }
175
- this.deferredPostRenderTopNavItemTimeoutId = setTimeout(() => {
176
- this.deferredPostRenderTopNavItemTimeoutId = undefined;
223
+ this.timers.scheduleCoalesced(TIMER.postRender, () => {
177
224
  if (!this.el.isConnected) {
178
225
  return;
179
226
  }
180
227
  this.syncHostListitemRole();
228
+ this.syncHasDropdownFromDom();
181
229
  this.connectListitemContextObservers();
182
230
  this.connectDropdownSlotObserver();
183
- }, 0);
231
+ });
184
232
  }
185
233
  syncDropdownDocListeners() {
234
+ if (!isBrowser()) {
235
+ return;
236
+ }
186
237
  const doc = this.el.ownerDocument;
187
238
  doc.removeEventListener('click', this.onDocClickCapture, true);
188
239
  doc.removeEventListener('keydown', this.onDocKeyDownCapture, true);
@@ -192,35 +243,54 @@ export class TopNavItem {
192
243
  doc.addEventListener('click', this.onDocClickCapture, true);
193
244
  doc.addEventListener('keydown', this.onDocKeyDownCapture, true);
194
245
  }
246
+ hasSlottedChildOwnedByThisHost(slotName) {
247
+ return Array.from(this.el.querySelectorAll(`[slot="${slotName}"]`)).some((node) => node.closest('xpl-top-nav-item') === this.el);
248
+ }
195
249
  syncHasDropdownFromDom() {
196
- this.hasDropdown = !!this.el.querySelector('[slot="dropdown"]');
250
+ const nextHasDropdown = this.el.querySelector('[slot="dropdown"]') != null;
251
+ if (nextHasDropdown !== this.hasDropdown) {
252
+ this.hasDropdown = nextHasDropdown;
253
+ }
254
+ const nextLeading = this.hasSlottedChildOwnedByThisHost('leading-icon');
255
+ if (nextLeading !== this.isLeadingIconSlotPresent) {
256
+ this.isLeadingIconSlotPresent = nextLeading;
257
+ }
258
+ const nextTrailing = this.hasSlottedChildOwnedByThisHost('trailing-icon');
259
+ if (nextTrailing !== this.isTrailingIconSlotPresent) {
260
+ this.isTrailingIconSlotPresent = nextTrailing;
261
+ }
262
+ const nextActiveDescendant = nextHasDropdown
263
+ ? this.el.querySelector('[slot="dropdown"] .xpl-top-nav-item--active') !== null ||
264
+ this.el.querySelector('[slot="dropdown"] .xpl-top-nav-item--selected') !== null
265
+ : false;
266
+ if (nextActiveDescendant !== this.hasActiveDescendant) {
267
+ this.hasActiveDescendant = nextActiveDescendant;
268
+ }
197
269
  }
198
270
  getNavDropdownBroadcastRoot() {
199
- var _a, _b;
200
- return ((_b = (_a = this.el.closest('xpl-top-nav')) !== null && _a !== void 0 ? _a : this.el.closest('xpl-nav-header-menu')) !== null && _b !== void 0 ? _b : this.el.ownerDocument);
271
+ return (this.el.closest('xpl-top-nav-menu') ??
272
+ this.el.closest('xpl-nav-header-menu') ??
273
+ this.el.closest('xpl-top-nav') ??
274
+ this.el.ownerDocument);
201
275
  }
202
276
  broadcastCloseOtherDropdownHosts() {
203
277
  const root = this.getNavDropdownBroadcastRoot();
204
278
  root.querySelectorAll('xpl-top-nav-item').forEach((host) => {
205
- if (host === this.el) {
279
+ if (host === this.el || host.parentElement !== this.el.parentElement) {
206
280
  return;
207
281
  }
208
282
  host.dispatchEvent(new CustomEvent('_xplCloseNavDropdown', { bubbles: false }));
209
283
  });
210
284
  }
211
- syntheticActivationClickFromKeyboard(e) {
212
- var _a;
213
- const inner = this.el.querySelector('.xpl-top-nav-item__inner');
214
- const rect = inner === null || inner === void 0 ? void 0 : inner.getBoundingClientRect();
215
- const cx = rect ? rect.left + rect.width / 2 : 0;
216
- const cy = rect ? rect.top + rect.height / 2 : 0;
217
- return new MouseEvent('click', {
218
- bubbles: true,
219
- cancelable: true,
220
- button: 0,
221
- clientX: cx,
222
- clientY: cy,
223
- view: (_a = e.view) !== null && _a !== void 0 ? _a : undefined,
285
+ hoverModeActive() {
286
+ return this.openMode === 'hover' && (this.hoverOpenMq?.matches ?? false);
287
+ }
288
+ focusTriggerAfterEscape() {
289
+ this.timers.scheduleCoalesced(TIMER.focusTriggerAfterEscape, () => {
290
+ if (!this.el.isConnected) {
291
+ return;
292
+ }
293
+ this.el.querySelector('.xpl-top-nav-item__inner')?.focus();
224
294
  });
225
295
  }
226
296
  static isInternalRenderedHostChild(el) {
@@ -229,54 +299,49 @@ export class TopNavItem {
229
299
  }
230
300
  hasNonDropdownLightDomChild() {
231
301
  return Array.from(this.el.childNodes).some((node) => {
232
- var _a;
233
302
  if (node.nodeType === Node.TEXT_NODE) {
234
- return Boolean((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim());
303
+ return Boolean(node.textContent?.trim());
235
304
  }
236
305
  if (node.nodeType === Node.ELEMENT_NODE) {
237
306
  const child = node;
238
307
  if (TopNavItem.isInternalRenderedHostChild(child)) {
239
308
  return false;
240
309
  }
241
- return child.getAttribute('slot') !== 'dropdown';
310
+ const slotName = child.getAttribute('slot');
311
+ return slotName == null || slotName === '';
242
312
  }
243
313
  return false;
244
314
  });
245
315
  }
246
316
  getInnerAriaLabel() {
247
- var _a, _b, _c;
248
- if ((_a = this.label) === null || _a === void 0 ? void 0 : _a.trim()) {
317
+ if (this.label?.trim())
249
318
  return undefined;
250
- }
251
- if (this.hasNonDropdownLightDomChild()) {
319
+ if (this.hasNonDropdownLightDomChild())
252
320
  return undefined;
253
- }
254
- const custom = (_b = this.itemAriaLabel) === null || _b === void 0 ? void 0 : _b.trim();
255
- if (custom) {
321
+ const custom = this.itemAriaLabel?.trim();
322
+ if (custom)
256
323
  return custom;
257
- }
258
- if ((_c = this.icon) === null || _c === void 0 ? void 0 : _c.trim()) {
324
+ if (this.icon?.trim() || this.isLeadingIconSlotPresent)
259
325
  return 'Navigation item';
260
- }
261
326
  return undefined;
262
327
  }
263
328
  computeHostListitemRole() {
264
329
  const { el } = this;
265
- if (el.classList.contains('xpl-top-nav__brand')) {
330
+ if (el.classList.contains('xpl-top-nav__brand'))
266
331
  return false;
267
- }
268
- if (el.getAttribute('slot') === 'right-aside-mobile') {
332
+ if (el.getAttribute('slot') === 'right-aside-mobile')
269
333
  return false;
270
- }
271
334
  const parent = el.parentElement;
272
- if ((parent === null || parent === void 0 ? void 0 : parent.getAttribute('role')) === 'list') {
335
+ if (parent?.getAttribute('role') === 'list')
273
336
  return true;
274
- }
275
337
  if (parent != null && parent.tagName.toLowerCase() === 'xpl-nav-header-menu') {
276
338
  return true;
277
339
  }
340
+ if (parent != null && parent.tagName.toLowerCase() === 'xpl-top-nav-menu') {
341
+ return true;
342
+ }
278
343
  if (el.getAttribute('slot') === 'left-aside' &&
279
- (parent === null || parent === void 0 ? void 0 : parent.tagName.toLowerCase()) === 'xpl-top-nav' &&
344
+ parent?.tagName.toLowerCase() === 'xpl-top-nav' &&
280
345
  parent.querySelector('.xpl-top-nav__left-primary[role="list"]') != null) {
281
346
  return true;
282
347
  }
@@ -284,31 +349,69 @@ export class TopNavItem {
284
349
  }
285
350
  syncHostListitemRole() {
286
351
  const next = this.computeHostListitemRole();
287
- if (this.hostListitemRole !== next) {
352
+ if (this.hostListitemRole !== next)
288
353
  this.hostListitemRole = next;
354
+ }
355
+ renderLabelContent() {
356
+ if (!this.label) {
357
+ return h("slot", null);
358
+ }
359
+ const description = this.description?.trim();
360
+ if (!description) {
361
+ return (h("span", { class: "xpl-top-nav-item__label", title: this.label }, this.label));
289
362
  }
363
+ return (h("span", { class: "xpl-top-nav-item__label-group" }, h("span", { class: "xpl-top-nav-item__label", title: this.label }, this.label), h("span", { class: "xpl-top-nav-item__description" }, description)));
364
+ }
365
+ renderLeading() {
366
+ if (this.isLeadingIconSlotPresent) {
367
+ return (h("span", { class: "xpl-top-nav-item__leading" }, h("slot", { name: "leading-icon" })));
368
+ }
369
+ if (this.icon) {
370
+ return (h("span", { class: "xpl-top-nav-item__leading" }, h("xpl-icon", { size: 16, icon: this.icon })));
371
+ }
372
+ return null;
373
+ }
374
+ renderTrailing() {
375
+ if (this.isTrailingIconSlotPresent) {
376
+ return (h("span", { class: "xpl-top-nav-item__trailing" }, h("slot", { name: "trailing-icon" })));
377
+ }
378
+ if (this.hasDropdown) {
379
+ return (h("span", { class: "xpl-top-nav-item__trailing" }, h("xpl-icon", { icon: this.isMobileViewport ? 'chevron-right' : 'chevron-down' })));
380
+ }
381
+ return null;
290
382
  }
291
383
  renderInner() {
292
384
  const tabIndex = 0;
293
385
  const ariaCurrent = this.selected ? 'page' : undefined;
294
386
  const ariaExpanded = this.hasDropdown ? (this.open ? 'true' : 'false') : undefined;
295
387
  const ariaLabel = this.getInnerAriaLabel();
296
- const shared = Object.assign(Object.assign({ class: 'xpl-top-nav-item__inner', tabIndex, 'aria-current': ariaCurrent, 'aria-expanded': ariaExpanded }, (ariaLabel ? { 'aria-label': ariaLabel } : {})), { onClick: this.handleClick, onKeyDown: this.handleKeyDown });
388
+ const shared = {
389
+ class: 'xpl-top-nav-item__inner',
390
+ tabIndex,
391
+ 'aria-current': ariaCurrent,
392
+ 'aria-expanded': ariaExpanded,
393
+ 'aria-haspopup': this.hasDropdown ? 'true' : undefined,
394
+ 'aria-controls': this.hasDropdown ? this.dropdownPanelId : undefined,
395
+ ...(ariaLabel ? { 'aria-label': ariaLabel } : {}),
396
+ onClick: this.handleClick,
397
+ onKeyDown: this.handleKeyDown,
398
+ };
297
399
  const useAnchor = this.href != null && !this.hasDropdown;
298
400
  if (useAnchor) {
299
- return (h("a", Object.assign({}, shared, { href: this.href }), this.icon && h("xpl-icon", { size: 16, icon: this.icon }), this.label ? (h("span", { class: "xpl-top-nav-item__label", title: this.label }, this.label)) : (h("slot", null))));
401
+ return (h("a", { ...shared, href: this.href }, this.renderLeading(), this.renderLabelContent(), this.renderTrailing()));
300
402
  }
301
- return (h("div", Object.assign({}, shared, { role: "button" }), this.icon && h("xpl-icon", { size: 16, icon: this.icon }), this.label ? (h("span", { class: "xpl-top-nav-item__label", title: this.label }, this.label)) : (h("slot", null)), this.hasDropdown && h("xpl-icon", { icon: "chevron-down" })));
403
+ return (h("button", { ...shared, type: "button" }, this.renderLeading(), this.renderLabelContent(), this.renderTrailing()));
302
404
  }
303
405
  render() {
304
- return (h(Host, Object.assign({ key: '6d68c9bb7527410185e6ecd176c7a9a887359af9', class: {
406
+ return (h(Host, { key: 'e1e7241e6b6f2d9d96c779b91b7fa1ba20e8e1f4', class: {
305
407
  'xpl-top-nav-item': true,
306
408
  'xpl-top-nav-item--active': this.active,
307
- 'xpl-top-nav-item--dropdown-open': this.open,
409
+ 'xpl-top-nav-item--dropdown-open': this.hasDropdown && this.open,
410
+ 'xpl-top-nav-item--has-active-descendant': this.hasActiveDescendant,
308
411
  'xpl-top-nav-item--has-dropdown': this.hasDropdown,
309
412
  'xpl-top-nav-item--selected': this.selected,
310
413
  dark: true,
311
- } }, (this.hostListitemRole ? { role: 'listitem' } : {})), this.renderInner(), this.hasDropdown && (h("div", { key: 'da5414f6573aa6eb604721c814164b9a4987091d', class: "xpl-top-nav-item__dropdown" }, h("slot", { key: '116c436b4ef2902c50c5dd78c8d292190a3c58e4', name: "dropdown" })))));
414
+ }, onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, ...(this.hostListitemRole ? { role: 'listitem' } : {}) }, this.renderInner(), this.hasDropdown && (h("div", { key: 'ec1ed04f166670f78c205ba351911672a147d5a7', id: this.dropdownPanelId, class: "xpl-top-nav-item__dropdown" }, h("slot", { key: '01d3db348a018c43f21b24acad80e7687f8bb0e1', name: "dropdown" })))));
312
415
  }
313
416
  static get is() { return "xpl-top-nav-item"; }
314
417
  static get properties() {
@@ -333,6 +436,25 @@ export class TopNavItem {
333
436
  "attribute": "active",
334
437
  "defaultValue": "false"
335
438
  },
439
+ "description": {
440
+ "type": "string",
441
+ "mutable": false,
442
+ "complexType": {
443
+ "original": "string",
444
+ "resolved": "string",
445
+ "references": {}
446
+ },
447
+ "required": false,
448
+ "optional": true,
449
+ "docs": {
450
+ "tags": [],
451
+ "text": "Optional description line shown below **`label`** (row context only, e.g. inside **`xpl-nav-header-menu`** /\n**`xpl-top-nav-menu`**). Ignored when **`label`** is not set."
452
+ },
453
+ "getter": false,
454
+ "setter": false,
455
+ "reflect": false,
456
+ "attribute": "description"
457
+ },
336
458
  "href": {
337
459
  "type": "string",
338
460
  "mutable": false,
@@ -364,7 +486,7 @@ export class TopNavItem {
364
486
  "optional": false,
365
487
  "docs": {
366
488
  "tags": [],
367
- "text": "Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set)."
489
+ "text": "Icon name from **`@xplortech/apollo-icons`** (shown before the label when **`label`** is set). Ignored when\n**`slot=\"leading-icon\"`** content is present."
368
490
  },
369
491
  "getter": false,
370
492
  "setter": false,
@@ -410,6 +532,46 @@ export class TopNavItem {
410
532
  "reflect": false,
411
533
  "attribute": "label"
412
534
  },
535
+ "open": {
536
+ "type": "boolean",
537
+ "mutable": true,
538
+ "complexType": {
539
+ "original": "boolean",
540
+ "resolved": "boolean",
541
+ "references": {}
542
+ },
543
+ "required": false,
544
+ "optional": false,
545
+ "docs": {
546
+ "tags": [],
547
+ "text": "Whether the **`slot=\"dropdown\"`** panel is open. Reflected to the **`open`** attribute so consumers can drive it\n(controlled) or read it back (uncontrolled, toggled internally on click / hover / keyboard activation). Prefer\n**`openMenu()`** / **`closeMenu()`** / **`toggleMenu()`** over setting this directly from event handlers."
548
+ },
549
+ "getter": false,
550
+ "setter": false,
551
+ "reflect": true,
552
+ "attribute": "open",
553
+ "defaultValue": "false"
554
+ },
555
+ "openMode": {
556
+ "type": "string",
557
+ "mutable": false,
558
+ "complexType": {
559
+ "original": "'click' | 'hover'",
560
+ "resolved": "\"click\" | \"hover\"",
561
+ "references": {}
562
+ },
563
+ "required": false,
564
+ "optional": false,
565
+ "docs": {
566
+ "tags": [],
567
+ "text": "How the **`slot=\"dropdown\"`** panel opens. **`hover`** is gated on **`TOP_NAV_ITEM_HOVER_OPEN_MQ`**\n(hover-capable, fine pointer, **`md`** and up) \u2014 below that, or on touch / coarse-pointer devices, **`hover`**\nfalls back to click/tap. Keyboard activation (Enter / Space) always toggles regardless of **`openMode`**."
568
+ },
569
+ "getter": false,
570
+ "setter": false,
571
+ "reflect": true,
572
+ "attribute": "open-mode",
573
+ "defaultValue": "'click'"
574
+ },
413
575
  "selected": {
414
576
  "type": "boolean",
415
577
  "mutable": false,
@@ -434,9 +596,12 @@ export class TopNavItem {
434
596
  }
435
597
  static get states() {
436
598
  return {
599
+ "hasActiveDescendant": {},
437
600
  "hasDropdown": {},
601
+ "isLeadingIconSlotPresent": {},
602
+ "isMobileViewport": {},
438
603
  "hostListitemRole": {},
439
- "open": {}
604
+ "isTrailingIconSlotPresent": {}
440
605
  };
441
606
  }
442
607
  static get events() {
@@ -448,7 +613,7 @@ export class TopNavItem {
448
613
  "composed": true,
449
614
  "docs": {
450
615
  "tags": [],
451
- "text": "Emitted for plain items (button or link) on pointer **click**, or when keyboard activation produces a **`click`**\n(native for **Enter** on **`<a href>`**, or programmatic **`.click()`** for **Space** on links). **`detail`** is the\n**`MouseEvent`** from that activation (synthetic only for **`<div role=\"button\">`** via **Enter** / **Space**).\nNot emitted when **`slot=\"dropdown\"`** is used."
616
+ "text": "Emitted for plain items (button or link) on pointer **click**, or when keyboard activation produces a **`click`**:\nthe native **`<button>`** fires a real **`click`** on **Enter** / **Space**, a native **`<a href>`** on **Enter**,\nand **Space** on a link maps to a programmatic **`.click()`**. **`detail`** is always the real **`MouseEvent`** from\nthat activation (keyboard-driven clicks have **`detail === 0`**). Not emitted when **`slot=\"dropdown\"`** is used."
452
617
  },
453
618
  "complexType": {
454
619
  "original": "MouseEvent",
@@ -460,13 +625,86 @@ export class TopNavItem {
460
625
  }
461
626
  }
462
627
  }
628
+ }, {
629
+ "method": "openChange",
630
+ "name": "openChange",
631
+ "bubbles": true,
632
+ "cancelable": true,
633
+ "composed": true,
634
+ "docs": {
635
+ "tags": [],
636
+ "text": "Emitted whenever **`open`** changes (click, hover, keyboard, Escape, outside click, or programmatic)."
637
+ },
638
+ "complexType": {
639
+ "original": "boolean",
640
+ "resolved": "boolean",
641
+ "references": {}
642
+ }
463
643
  }];
464
644
  }
645
+ static get methods() {
646
+ return {
647
+ "closeMenu": {
648
+ "complexType": {
649
+ "signature": "() => Promise<void>",
650
+ "parameters": [],
651
+ "references": {
652
+ "Promise": {
653
+ "location": "global",
654
+ "id": "global::Promise"
655
+ }
656
+ },
657
+ "return": "Promise<void>"
658
+ },
659
+ "docs": {
660
+ "text": "No-op when there is no **`slot=\"dropdown\"`** panel to open.",
661
+ "tags": []
662
+ }
663
+ },
664
+ "openMenu": {
665
+ "complexType": {
666
+ "signature": "() => Promise<void>",
667
+ "parameters": [],
668
+ "references": {
669
+ "Promise": {
670
+ "location": "global",
671
+ "id": "global::Promise"
672
+ }
673
+ },
674
+ "return": "Promise<void>"
675
+ },
676
+ "docs": {
677
+ "text": "No-op when there is no **`slot=\"dropdown\"`** panel to open.",
678
+ "tags": []
679
+ }
680
+ },
681
+ "toggleMenu": {
682
+ "complexType": {
683
+ "signature": "() => Promise<void>",
684
+ "parameters": [],
685
+ "references": {
686
+ "Promise": {
687
+ "location": "global",
688
+ "id": "global::Promise"
689
+ }
690
+ },
691
+ "return": "Promise<void>"
692
+ },
693
+ "docs": {
694
+ "text": "No-op when there is no **`slot=\"dropdown\"`** panel to open.",
695
+ "tags": []
696
+ }
697
+ }
698
+ };
699
+ }
465
700
  static get elementRef() { return "el"; }
466
701
  static get watchers() {
467
702
  return [{
468
703
  "propName": "hasDropdown",
469
704
  "methodName": "onHasDropdownChanged"
705
+ }, {
706
+ "propName": "open",
707
+ "methodName": "onOpenChanged"
470
708
  }];
471
709
  }
472
710
  static get listeners() {