@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
@@ -0,0 +1,114 @@
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
+ export class TopNavMenu {
5
+ constructor() {
6
+ this.timers = new TimerManager();
7
+ this.isMobileCascade = false;
8
+ this.onViewportChange = () => {
9
+ this.isMobileCascade = this.mobileMq?.matches ?? false;
10
+ };
11
+ this.handleBackClick = async () => {
12
+ const parent = this.el.closest('xpl-top-nav-item');
13
+ if (!parent) {
14
+ return;
15
+ }
16
+ await parent.closeMenu();
17
+ parent.querySelector('.xpl-top-nav-item__inner')?.focus();
18
+ };
19
+ }
20
+ connectedCallback() {
21
+ if (isBrowser() && typeof window.matchMedia === 'function') {
22
+ this.mobileMq = window.matchMedia(TOP_NAV_MOBILE_MQ);
23
+ this.mobileMq.addEventListener('change', this.onViewportChange);
24
+ this.isMobileCascade = this.mobileMq.matches;
25
+ }
26
+ this.connectParentOpenObserver();
27
+ }
28
+ disconnectedCallback() {
29
+ this.timers.dispose();
30
+ this.mobileMq?.removeEventListener('change', this.onViewportChange);
31
+ this.mobileMq = undefined;
32
+ this.disconnectParentOpenObserver();
33
+ }
34
+ connectParentOpenObserver() {
35
+ this.disconnectParentOpenObserver();
36
+ const parent = this.el.parentElement;
37
+ if (!parent || typeof MutationObserver === 'undefined') {
38
+ return;
39
+ }
40
+ this.parentOpenObserver = new MutationObserver(() => {
41
+ this.scheduleParentOpenCheck();
42
+ });
43
+ this.parentOpenObserver.observe(parent, {
44
+ attributes: true,
45
+ attributeFilter: ['class'],
46
+ });
47
+ }
48
+ disconnectParentOpenObserver() {
49
+ this.parentOpenObserver?.disconnect();
50
+ this.parentOpenObserver = undefined;
51
+ }
52
+ scheduleParentOpenCheck() {
53
+ this.timers.scheduleCoalesced('parentOpenCheck', () => {
54
+ if (!this.el.isConnected) {
55
+ return;
56
+ }
57
+ this.focusBackRowIfJustOpenedOnMobile();
58
+ });
59
+ }
60
+ focusBackRowIfJustOpenedOnMobile() {
61
+ if (!this.isMobileCascade) {
62
+ return;
63
+ }
64
+ const parent = this.el.parentElement;
65
+ if (!parent?.classList.contains('xpl-top-nav-item--dropdown-open')) {
66
+ return;
67
+ }
68
+ this.el
69
+ .querySelector('.xpl-top-nav-menu__back .xpl-top-nav-item__inner')
70
+ ?.focus();
71
+ }
72
+ renderBackRow() {
73
+ if (!this.isMobileCascade || !this.label?.trim()) {
74
+ return null;
75
+ }
76
+ return (h("xpl-top-nav-item", { class: "xpl-top-nav-menu__back", label: this.label, onNavItemClick: this.handleBackClick }, h("xpl-icon", { slot: "leading-icon", icon: "chevron-left", size: 24 })));
77
+ }
78
+ render() {
79
+ return (h(Host, { key: 'e71631c4d9d4b653247d13c7b182f722bf1e52cc', class: {
80
+ 'xpl-top-nav-menu': true,
81
+ dark: true,
82
+ }, role: "list", "aria-label": this.label || undefined }, this.renderBackRow(), h("slot", { key: 'c6e38f4f78ab65dad030076aebf97c40dbce651b' })));
83
+ }
84
+ static get is() { return "xpl-top-nav-menu"; }
85
+ static get properties() {
86
+ return {
87
+ "label": {
88
+ "type": "string",
89
+ "mutable": false,
90
+ "complexType": {
91
+ "original": "string",
92
+ "resolved": "string",
93
+ "references": {}
94
+ },
95
+ "required": false,
96
+ "optional": true,
97
+ "docs": {
98
+ "tags": [],
99
+ "text": "Accessible name for the list (**`aria-label`** on the host) and the label shown in the mobile\ncascade back row when drilling back out of this group."
100
+ },
101
+ "getter": false,
102
+ "setter": false,
103
+ "reflect": false,
104
+ "attribute": "label"
105
+ }
106
+ };
107
+ }
108
+ static get states() {
109
+ return {
110
+ "isMobileCascade": {}
111
+ };
112
+ }
113
+ static get elementRef() { return "el"; }
114
+ }
@@ -1,9 +1,28 @@
1
1
  import { Host, h, } from "@stencil/core";
2
+ import { hasHostNamedSlot } from "../../utils/light-dom-slots";
3
+ import { isBrowser } from "../../utils/lifecycle";
4
+ const TOP_NAV_BRAND_LOGO_SLOT_REGIONS = [
5
+ '.xpl-top-nav__brand-logo-slot',
6
+ '.xpl-top-nav__brand-bar',
7
+ ];
8
+ const TOP_NAV_USER_MENU_PANEL_REGION = '.xpl-top-nav__user-menu-panel';
9
+ const TOP_NAV_USER_MENU_SLOT_REGIONS = [
10
+ TOP_NAV_USER_MENU_PANEL_REGION,
11
+ '.xpl-top-nav__user-menu-stash',
12
+ ];
13
+ const TOP_NAV_USER_MENU_TRIGGER_SLOT_REGIONS = [
14
+ '.xpl-top-nav__user-popover',
15
+ '.xpl-top-nav__user-menu-stash',
16
+ '.xpl-top-nav__right-user',
17
+ ];
18
+ const TOP_NAV_USER_MENU_TRIGGER_EXCLUDED_REGIONS = [TOP_NAV_USER_MENU_PANEL_REGION];
2
19
  export class TopNav {
3
20
  constructor() {
21
+ this.slotProjectionDirty = false;
4
22
  this.userPopoverDrawerSyncHost = null;
5
23
  this.brandLogoSlotPresent = false;
6
24
  this.open = false;
25
+ this.slotProjectionNonce = 0;
7
26
  this.userMenuSlotPresent = false;
8
27
  this.userMenuTriggerSlotPresent = false;
9
28
  this.focusNavControlAfterClose = () => {
@@ -11,9 +30,8 @@ export class TopNav {
11
30
  clearTimeout(this.navControlFocusTimeoutId);
12
31
  }
13
32
  this.navControlFocusTimeoutId = setTimeout(() => {
14
- var _a;
15
33
  this.navControlFocusTimeoutId = undefined;
16
- (_a = this.el.querySelector('.xpl-top-nav__nav-control')) === null || _a === void 0 ? void 0 : _a.focus();
34
+ this.el.querySelector('.xpl-top-nav__nav-control')?.focus();
17
35
  }, 0);
18
36
  };
19
37
  this.handleUserPopoverIsOpenChange = (e) => {
@@ -44,11 +62,30 @@ export class TopNav {
44
62
  this.navOpen.emit(false);
45
63
  this.focusNavControlAfterClose();
46
64
  };
65
+ this.onDocClickOutsideDismiss = (e) => {
66
+ if (!this.navControl || !this.open) {
67
+ return;
68
+ }
69
+ const target = e.target;
70
+ if (target == null || this.anyDescendantPopoverIsOpen()) {
71
+ return;
72
+ }
73
+ if (this.el.querySelector('.xpl-top-nav__left-primary')?.contains(target)) {
74
+ return;
75
+ }
76
+ if (this.el.querySelector('.xpl-top-nav__nav-control')?.contains(target)) {
77
+ return;
78
+ }
79
+ this.open = false;
80
+ this.resetMobileCascade();
81
+ this.navOpen.emit(false);
82
+ };
47
83
  this.onNavToggle = () => {
48
84
  const wasOpen = this.open;
49
85
  this.open = !this.open;
50
86
  this.navOpen.emit(this.open);
51
87
  if (wasOpen && !this.open) {
88
+ this.resetMobileCascade();
52
89
  this.focusNavControlAfterClose();
53
90
  }
54
91
  };
@@ -58,19 +95,29 @@ export class TopNav {
58
95
  return;
59
96
  }
60
97
  const inner = host.querySelector('.xpl-popover');
61
- if (inner === null || inner === void 0 ? void 0 : inner.classList.contains('xpl-popover--is-open')) {
98
+ if (inner?.classList.contains('xpl-popover--is-open')) {
62
99
  this.closeMobileDrawerWhenAccountMenuOpens();
63
100
  }
64
101
  };
65
102
  this.syncBrandLogoSlot = () => {
66
- const next = this.el.querySelector('[slot="brand-logo"]') != null;
103
+ const next = hasHostNamedSlot(this.el, 'brand-logo', {
104
+ hostTag: 'xpl-top-nav',
105
+ projectionRegionSelectors: TOP_NAV_BRAND_LOGO_SLOT_REGIONS,
106
+ });
67
107
  if (next !== this.brandLogoSlotPresent) {
68
108
  this.brandLogoSlotPresent = next;
69
109
  }
70
110
  };
71
111
  this.syncUserMenuSlots = () => {
72
- const panel = this.el.querySelector('[slot="user-menu"]') != null;
73
- const triggerSlot = this.el.querySelector('[slot="user-menu-trigger"]') != null;
112
+ const panel = hasHostNamedSlot(this.el, 'user-menu', {
113
+ hostTag: 'xpl-top-nav',
114
+ projectionRegionSelectors: TOP_NAV_USER_MENU_SLOT_REGIONS,
115
+ });
116
+ const triggerSlot = hasHostNamedSlot(this.el, 'user-menu-trigger', {
117
+ hostTag: 'xpl-top-nav',
118
+ projectionRegionSelectors: TOP_NAV_USER_MENU_TRIGGER_SLOT_REGIONS,
119
+ excludedRegionSelectors: TOP_NAV_USER_MENU_TRIGGER_EXCLUDED_REGIONS,
120
+ });
74
121
  if (panel !== this.userMenuSlotPresent) {
75
122
  this.userMenuSlotPresent = panel;
76
123
  }
@@ -81,14 +128,15 @@ export class TopNav {
81
128
  }
82
129
  onNavControlChanged() {
83
130
  this.syncOpenFromNavControl();
84
- this.syncDocEscapeListener();
131
+ this.syncDocDismissListeners();
85
132
  }
86
133
  connectedCallback() {
87
134
  this.syncOpenFromNavControl();
88
- this.syncDocEscapeListener();
135
+ this.syncDocDismissListeners();
89
136
  this.syncBrandLogoSlot();
90
137
  this.syncUserMenuSlots();
91
138
  this.connectSlotContentObserver();
139
+ this.flushPendingSlotProjection();
92
140
  }
93
141
  disconnectedCallback() {
94
142
  if (this.navControlFocusTimeoutId !== undefined) {
@@ -99,7 +147,7 @@ export class TopNav {
99
147
  clearTimeout(this.deferredSlotContentObserverSyncTimeoutId);
100
148
  this.deferredSlotContentObserverSyncTimeoutId = undefined;
101
149
  }
102
- this.removeDocEscapeListener();
150
+ this.removeDocDismissListeners();
103
151
  this.disconnectSlotContentObserver();
104
152
  this.disconnectUserPopoverDrawerSync();
105
153
  }
@@ -116,13 +164,11 @@ export class TopNav {
116
164
  this.connectUserPopoverDrawerSync();
117
165
  }
118
166
  get childAccountLabelText() {
119
- var _a, _b;
120
- return (_b = (_a = this.childAccountLabel) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
167
+ return this.childAccountLabel?.trim() ?? '';
121
168
  }
122
169
  get hasBrand() {
123
- var _a, _b, _c, _d;
124
- const name = (_b = (_a = this.brandName) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
125
- const logo = (_d = (_c = this.brandLogo) === null || _c === void 0 ? void 0 : _c.trim()) !== null && _d !== void 0 ? _d : '';
170
+ const name = this.brandName?.trim() ?? '';
171
+ const logo = this.brandLogo?.trim() ?? '';
126
172
  return name.length > 0 || logo.length > 0 || this.brandLogoSlotPresent;
127
173
  }
128
174
  get hasUserMenu() {
@@ -138,7 +184,7 @@ export class TopNav {
138
184
  const hosts = this.el.querySelectorAll('xpl-popover');
139
185
  for (let i = 0; i < hosts.length; i += 1) {
140
186
  const inner = hosts[i].querySelector('.xpl-popover');
141
- if (inner === null || inner === void 0 ? void 0 : inner.classList.contains('xpl-popover--is-open')) {
187
+ if (inner?.classList.contains('xpl-popover--is-open')) {
142
188
  return true;
143
189
  }
144
190
  }
@@ -156,8 +202,8 @@ export class TopNav {
156
202
  if (typeof MutationObserver === 'undefined') {
157
203
  return;
158
204
  }
159
- this.slotContentObserver = new MutationObserver(() => {
160
- this.scheduleSlotContentSyncFromObserver();
205
+ this.slotContentObserver = new MutationObserver((mutations) => {
206
+ this.scheduleSlotContentSyncFromObserver(mutations);
161
207
  });
162
208
  this.slotContentObserver.observe(this.el, {
163
209
  childList: true,
@@ -192,23 +238,30 @@ export class TopNav {
192
238
  }
193
239
  }
194
240
  disconnectSlotContentObserver() {
195
- var _a;
196
- (_a = this.slotContentObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
241
+ this.slotContentObserver?.disconnect();
197
242
  this.slotContentObserver = undefined;
198
243
  }
199
244
  disconnectUserPopoverDrawerSync() {
200
- var _a;
201
245
  if (this.userPopoverDrawerSyncHost) {
202
246
  this.userPopoverDrawerSyncHost.removeEventListener('isOpenChange', this.handleUserPopoverIsOpenChange);
203
247
  this.userPopoverDrawerSyncHost = null;
204
248
  }
205
- (_a = this.userPopoverDrawerOpenObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
249
+ this.userPopoverDrawerOpenObserver?.disconnect();
206
250
  this.userPopoverDrawerOpenObserver = undefined;
207
251
  }
208
- removeDocEscapeListener() {
209
- this.el.ownerDocument.removeEventListener('keydown', this.onDocKeyDownEscape, false);
252
+ removeDocDismissListeners() {
253
+ const doc = this.el.ownerDocument;
254
+ doc.removeEventListener('keydown', this.onDocKeyDownEscape, false);
255
+ doc.removeEventListener('click', this.onDocClickOutsideDismiss, true);
256
+ }
257
+ resetMobileCascade() {
258
+ const openItem = this.el.querySelector('.xpl-top-nav__left-primary > xpl-top-nav-item.xpl-top-nav-item--dropdown-open');
259
+ openItem?.closeMenu().catch(() => undefined);
210
260
  }
211
- scheduleSlotContentSyncFromObserver() {
261
+ scheduleSlotContentSyncFromObserver(mutations) {
262
+ if (this.mutationsAffectHostSlotting(mutations)) {
263
+ this.slotProjectionDirty = true;
264
+ }
212
265
  if (this.deferredSlotContentObserverSyncTimeoutId !== undefined) {
213
266
  clearTimeout(this.deferredSlotContentObserverSyncTimeoutId);
214
267
  }
@@ -219,24 +272,38 @@ export class TopNav {
219
272
  }
220
273
  this.syncBrandLogoSlot();
221
274
  this.syncUserMenuSlots();
275
+ this.flushPendingSlotProjection();
222
276
  }, 0);
223
277
  }
224
- syncDocEscapeListener() {
225
- this.removeDocEscapeListener();
278
+ flushPendingSlotProjection() {
279
+ if (this.slotProjectionDirty) {
280
+ this.slotProjectionDirty = false;
281
+ this.slotProjectionNonce += 1;
282
+ }
283
+ }
284
+ mutationsAffectHostSlotting(mutations) {
285
+ return mutations.some((m) => m.type === 'attributes' || (m.type === 'childList' && m.target === this.el));
286
+ }
287
+ syncDocDismissListeners() {
288
+ this.removeDocDismissListeners();
289
+ if (!isBrowser())
290
+ return;
226
291
  if (this.navControl) {
227
- this.el.ownerDocument.addEventListener('keydown', this.onDocKeyDownEscape, false);
292
+ const doc = this.el.ownerDocument;
293
+ doc.addEventListener('keydown', this.onDocKeyDownEscape, false);
294
+ doc.addEventListener('click', this.onDocClickOutsideDismiss, true);
228
295
  }
229
296
  }
230
297
  syncOpenFromNavControl() {
231
298
  const wasOpen = this.open;
232
299
  this.open = false;
233
300
  if (wasOpen && !this.navControl) {
301
+ this.resetMobileCascade();
234
302
  this.navOpen.emit(false);
235
303
  }
236
304
  }
237
305
  render() {
238
- var _a, _b, _c, _d;
239
- return (h(Host, { key: '6b22351e62f90d5fec04c0dafa5208d9a495b67b', class: {
306
+ return (h(Host, { key: '8f9f8e171b2b04706360048965e8e8a40f3f7013', class: {
240
307
  'xpl-top-nav': true,
241
308
  'xpl-top-nav--nav-control': Boolean(this.navControl),
242
309
  'xpl-top-nav--open': this.open,
@@ -244,15 +311,15 @@ export class TopNav {
244
311
  'xpl-top-nav--has-brand': this.hasBrand,
245
312
  'xpl-top-nav--has-user-menu': this.hasUserMenu,
246
313
  dark: true,
247
- } }, h("nav", { key: '5f29a00b93b1affda6aaf900e42cc6ff33f1b90c', "aria-label": (_a = this.label) !== null && _a !== void 0 ? _a : 'top-navigation-bar', class: "xpl-top-nav__bar" }, h("div", { key: 'fbe9cb0b1bc7d9bf9be1f04e64cb93ff24866879', class: "xpl-top-nav__inner-left" }, this.navControl && (h("button", { key: 'b22532e39a57f9a250617aa09e6e0dde6dfeb9e5', type: "button", class: "xpl-top-nav__nav-control", "aria-expanded": this.open ? 'true' : 'false', "aria-label": this.open ? 'Close navigation menu' : 'Open navigation menu', onClick: this.onNavToggle }, h("xpl-icon", { key: 'a9f7dbb6287d3e11ea5b839bedb8d808c67bcd8e', class: "xpl-top-nav__control-icon", icon: "menu", size: 20 }))), this.hasBrand && (h("div", { key: 'c702fc39d186f37901c8c6b4e5d378eaee2faa99', class: "xpl-top-nav__brand-bar" }, h("xpl-top-nav-item", { key: '980b470563ee3d4e3e388cd089622041f307cd0b', class: "xpl-top-nav__brand", href: this.brandHref, onNavItemClick: this.onBrandNavItemClick }, ((_b = this.brandLogo) === null || _b === void 0 ? void 0 : _b.trim()) ? (h("img", { class: "xpl-top-nav__brand-logo", src: this.brandLogo, alt: ((_c = this.brandName) === null || _c === void 0 ? void 0 : _c.trim())
314
+ } }, h("nav", { key: '2c05b69b2918753c4f928e53d92c6ca737a92b59', "aria-label": this.label ?? 'top-navigation-bar', class: "xpl-top-nav__bar" }, h("div", { key: '1dd5722748946d0adfad6cc40da03c21012d65b2', class: "xpl-top-nav__inner-left" }, this.navControl && (h("button", { key: '810e68f589ec13b942a78c877fea816407c05287', type: "button", class: "xpl-top-nav__nav-control", "aria-expanded": this.open ? 'true' : 'false', "aria-label": this.open ? 'Close navigation menu' : 'Open navigation menu', onClick: this.onNavToggle }, h("xpl-icon", { key: '550653cbd1d61c7b80a31ab48dce59936a107128', class: "xpl-top-nav__control-icon", icon: "menu", size: 32 }))), this.hasBrand && (h("div", { key: '6509a9a42b693b925204a9a42a34c0071d73f485', class: "xpl-top-nav__brand-bar" }, h("xpl-top-nav-item", { key: '623cfb95bd0a6581a057ddf37aa3920ee58b5734', class: "xpl-top-nav__brand", href: this.brandHref, onNavItemClick: this.onBrandNavItemClick }, this.brandLogo?.trim() ? (h("img", { class: "xpl-top-nav__brand-logo", src: this.brandLogo, alt: this.brandName?.trim()
248
315
  ? this.brandName.trim()
249
- : 'Brand' })) : this.brandLogoSlotPresent ? (h("span", { class: "xpl-top-nav__brand-logo-slot" }, h("slot", { name: "brand-logo" }))) : null, ((_d = this.brandName) === null || _d === void 0 ? void 0 : _d.trim()) ? (h("span", { class: "xpl-top-nav__brand-name" }, this.brandName.trim())) : null))), h("div", { key: '0740be056833bd15c798a44c5c3dbe80ed5e15fd', class: {
316
+ : 'Brand' })) : this.brandLogoSlotPresent ? (h("span", { class: "xpl-top-nav__brand-logo-slot" }, h("slot", { name: "brand-logo" }))) : null, this.brandName?.trim() ? (h("span", { class: "xpl-top-nav__brand-name" }, this.brandName.trim())) : null))), h("div", { key: '61d8a6d485380c39ffa74cd8cfbea37df32060dd', class: {
250
317
  'xpl-top-nav__aside': true,
251
318
  'xpl-nav-left': true,
252
- } }, h("div", { key: 'ff4f4534944dc54df40c289e65a4ab7d75bd572e', class: "xpl-top-nav__left-primary", role: "list" }, h("slot", { key: 'fdec30ffc838d7e73788932aa6fef46fac2fe0ab', name: "left-aside" })))), h("div", { key: '69d5b669744ff3aeb0c4316f4d5b27b9c461652f', class: {
319
+ } }, h("div", { key: '3aab27091f543a9c6a813043883c218791cfaa4a', class: "xpl-top-nav__left-primary", role: "list" }, h("slot", { key: '93ff48c9bb3e0fa00b23a707da84d222ad74224d', name: "left-aside" })))), h("div", { key: 'd92afdae9ac68d49a370fb41b39aeef2b956af1f', class: {
253
320
  'xpl-top-nav__aside': true,
254
321
  'xpl-nav-right': true,
255
- } }, h("div", { key: '7ae70d39f31243b77f09af7b0e4327d0bb1b1dfd', class: "xpl-nav-right__list" }, h("div", { key: '7bafc8eab226ba0ff77ae98281d4665eb6b75fbe', class: "xpl-top-nav__right-rail" }, h("div", { key: '9914028435faebbd3d539d763b71500643017ebc', class: "xpl-top-nav__right-lead" }, h("slot", { key: '974117684ec371dc87264bfbc0da5e456adeec9b', name: "right-aside" })), this.hasUserMenu ? (h("div", { class: "xpl-top-nav__right-user" }, h("xpl-popover", { class: "xpl-top-nav__user-popover dark", position: "bottom-end", display: "menu" }, this.userMenuTriggerSlotPresent ? (h("slot", { name: "user-menu-trigger", slot: "trigger" })) : this.usesBuiltInChildAccountTrigger ? (h("xpl-button", { slot: "trigger", class: "xpl-top-nav__child-account-trigger", type: "button", variant: "tertiary", icon: "chevron-down", iconPosition: "end", iconOnly: this.childAccountLabelText.length === 0, "aria-haspopup": "dialog", "aria-label": this.childAccountLabelText.length > 0
322
+ } }, h("div", { key: '36fadad47ed2862f88c1f42e1b95530d2e06b046', class: "xpl-nav-right__list" }, h("div", { key: '5b35413cbfcc5fd9af1e491f1a1f14d41ae35c0d', class: "xpl-top-nav__right-rail" }, h("div", { key: '37d00bfe95cdf35345ed9ec273a159255efc31a2', class: "xpl-top-nav__right-lead" }, h("slot", { key: 'b64f92c5886ef929b51fde06d48ea1fbf3660d44', name: "right-aside" })), this.hasUserMenu ? (h("div", { class: "xpl-top-nav__right-user" }, h("xpl-popover", { class: "xpl-top-nav__user-popover dark", position: "bottom-end", display: "menu" }, this.userMenuTriggerSlotPresent ? (h("slot", { name: "user-menu-trigger", slot: "trigger" })) : this.usesBuiltInChildAccountTrigger ? (h("xpl-button", { slot: "trigger", class: "xpl-top-nav__child-account-trigger", type: "button", variant: "tertiary", icon: "chevron-down", iconPosition: "end", iconOnly: this.childAccountLabelText.length === 0, "aria-haspopup": "dialog", "aria-label": this.childAccountLabelText.length > 0
256
323
  ? undefined
257
324
  : 'Open account menu' }, this.childAccountLabelText.length > 0
258
325
  ? this.childAccountLabelText
@@ -381,6 +448,7 @@ export class TopNav {
381
448
  return {
382
449
  "brandLogoSlotPresent": {},
383
450
  "open": {},
451
+ "slotProjectionNonce": {},
384
452
  "userMenuSlotPresent": {},
385
453
  "userMenuTriggerSlotPresent": {}
386
454
  };
@@ -1,5 +1,10 @@
1
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
1
2
  export default {
2
3
  title: 'Components/Navigation/Utility Bar',
4
+ tags: ['vrt'],
5
+ beforeEach() {
6
+ setAutoSnapshotOptions({ enable: true });
7
+ },
3
8
  argTypes: {
4
9
  mainSlot: {
5
10
  type: { name: 'string', required: false },
@@ -9,7 +14,7 @@ export default {
9
14
  },
10
15
  },
11
16
  };
12
- const Story = ({ mainSlot, asideSlot }) => `
17
+ const renderUtilityBar = ({ mainSlot, asideSlot }) => `
13
18
  <div style="width: 85vw;">
14
19
  <xpl-utility-bar>
15
20
  <ul slot="main">
@@ -28,10 +33,9 @@ const setAsideSlot = (isMobile) => `
28
33
  <li>
29
34
  <xpl-button
30
35
  type="submit"
31
- variant="outline"
32
36
  ${isMobile ? 'icon-only' : 'icon-leading'}
33
- icon="user-circle"
34
- >Find Customer</xpl-button
37
+ icon="user"
38
+ >${isMobile ? '' : 'Find Customer'}</xpl-button
35
39
  >
36
40
  </li>
37
41
  <li>
@@ -69,19 +73,22 @@ const globalParams = (args) => ({
69
73
  `)(args),
70
74
  },
71
75
  });
72
- export const UtilityBarMobile = Story.bind({});
76
+ export const UtilityBarMobile = (args) => renderUtilityBar(args);
73
77
  UtilityBarMobile.args = {
74
78
  mainSlot: setMainSlot(),
75
79
  asideSlot: setAsideSlot(true),
76
80
  };
77
- UtilityBarMobile.parameters = Object.assign(Object.assign({}, globalParams(UtilityBarMobile.args)), { viewport: {
81
+ UtilityBarMobile.parameters = {
82
+ ...globalParams(UtilityBarMobile.args),
83
+ viewport: {
78
84
  defaultViewport: 'iphone12',
79
- } });
85
+ },
86
+ };
80
87
  UtilityBarMobile.storyName = 'Mobile';
81
- export const UtilityBarDesktop = Story.bind({});
88
+ export const UtilityBarDesktop = (args) => renderUtilityBar(args);
82
89
  UtilityBarDesktop.args = {
83
90
  mainSlot: setMainSlot(),
84
91
  asideSlot: setAsideSlot(false),
85
92
  };
86
- UtilityBarDesktop.parameters = Object.assign({}, globalParams(UtilityBarDesktop.args));
93
+ UtilityBarDesktop.parameters = { ...globalParams(UtilityBarDesktop.args) };
87
94
  UtilityBarDesktop.storyName = 'Desktop';
@@ -11,7 +11,7 @@ export class UtilityBar {
11
11
  this.open = this.isNavOpenAtStartup !== undefined ? this.isNavOpenAtStartup : this.open;
12
12
  }
13
13
  render() {
14
- return (h(Host, { key: '965003722d536d4b9b7acd326ed7ae0cc2ac302a' }, h("nav", { key: '25d4348939fd65e00ce7bec962a31d65ff9473c3', "aria-label": "utility navigation bar", class: "xpl-utility-bar" }, this.navControl ? (h("div", null, h("button", { class: "xpl-utility-bar__nav-control", onClick: () => this.onNavToggle() }, h("xpl-icon", { class: "xpl-utility-nav__bars", icon: "three-bars" })), h("slot", { name: "aside" }))) : (h("slot", { name: "aside" })), h("slot", { key: '3cb1d9038135c1892a3780c9242bbd544f6f0f5f', name: "main" }))));
14
+ return (h(Host, { key: '7ad1182d72a730df69cf714b665a6d02eac2e51a' }, h("nav", { key: 'f0d5ffc31cabc8a075cae2c1ebdaa0e82ca53943', "aria-label": "utility navigation bar", class: "xpl-utility-bar" }, this.navControl ? (h("div", null, h("button", { class: "xpl-utility-bar__nav-control", onClick: () => this.onNavToggle() }, h("xpl-icon", { class: "xpl-utility-nav__bars", icon: "three-bars" })), h("slot", { name: "aside" }))) : (h("slot", { name: "aside" })), h("slot", { key: 'dfbacf5921308bd6056b8e6d903b31df28613ce0', name: "main" }))));
15
15
  }
16
16
  static get is() { return "xpl-utility-bar"; }
17
17
  static get properties() {
@@ -0,0 +1,69 @@
1
+ import { autoUpdate, computePosition, flip, hide, offset, size, } from "@floating-ui/dom";
2
+ import { isBrowser } from "./lifecycle";
3
+ export function getSide(placement) {
4
+ return placement.split('-')[0];
5
+ }
6
+ export function startFloating(reference, floating, options) {
7
+ if (!isBrowser()) {
8
+ return {
9
+ update: async () => { },
10
+ stop: () => { },
11
+ };
12
+ }
13
+ const { placement, strategy, middleware, onPosition, onReferenceHidden, onError } = options;
14
+ let generation = 0;
15
+ let cleanup = null;
16
+ let active = true;
17
+ const run = async () => {
18
+ if (!active) {
19
+ return;
20
+ }
21
+ const myGen = generation;
22
+ try {
23
+ const result = await computePosition(reference, floating, {
24
+ placement,
25
+ strategy,
26
+ middleware,
27
+ });
28
+ if (!active || myGen !== generation) {
29
+ return;
30
+ }
31
+ if (result.middlewareData.hide?.referenceHidden) {
32
+ if (onReferenceHidden?.() === true) {
33
+ return;
34
+ }
35
+ }
36
+ onPosition(result);
37
+ }
38
+ catch (err) {
39
+ if (!active || myGen !== generation) {
40
+ return;
41
+ }
42
+ onError?.(err);
43
+ }
44
+ };
45
+ cleanup = autoUpdate(reference, floating, run);
46
+ return {
47
+ update: run,
48
+ stop: () => {
49
+ active = false;
50
+ generation += 1;
51
+ if (cleanup) {
52
+ cleanup();
53
+ cleanup = null;
54
+ }
55
+ },
56
+ };
57
+ }
58
+ const DEFAULT_DROPDOWN_OFFSET_PX = 4;
59
+ export function dropdownMiddleware(opts) {
60
+ const { offsetPx = DEFAULT_DROPDOWN_OFFSET_PX, flipFallbackPlacements, sizeApply } = opts;
61
+ return [
62
+ offset(offsetPx),
63
+ flip(flipFallbackPlacements && flipFallbackPlacements.length > 0
64
+ ? { fallbackPlacements: flipFallbackPlacements }
65
+ : {}),
66
+ size({ apply: sizeApply }),
67
+ hide(),
68
+ ];
69
+ }
@@ -1,4 +1,8 @@
1
+ import { isBrowser } from "./lifecycle";
1
2
  export function isInsideFixedPosition(element) {
3
+ if (!isBrowser()) {
4
+ return false;
5
+ }
2
6
  let el = element.parentElement;
3
7
  while (el && el !== document.body && el !== document.documentElement) {
4
8
  if (getComputedStyle(el).position === 'fixed') {
@@ -9,6 +13,9 @@ export function isInsideFixedPosition(element) {
9
13
  return false;
10
14
  }
11
15
  export function getNearestScrollableAncestor(element) {
16
+ if (!isBrowser()) {
17
+ return undefined;
18
+ }
12
19
  let el = element.parentElement;
13
20
  while (el && el !== document.body && el !== document.documentElement) {
14
21
  const style = getComputedStyle(el);
@@ -3,6 +3,7 @@ export class TimerManager {
3
3
  this.timeouts = new Set();
4
4
  this.intervals = new Set();
5
5
  this.rafs = new Set();
6
+ this.coalesced = new Map();
6
7
  }
7
8
  setTimeout(callback, delay) {
8
9
  const id = setTimeout(() => {
@@ -37,6 +38,21 @@ export class TimerManager {
37
38
  cancelAnimationFrame(id);
38
39
  this.rafs.delete(id);
39
40
  }
41
+ scheduleCoalesced(key, callback, delay = 0) {
42
+ this.clearCoalesced(key);
43
+ const id = setTimeout(() => {
44
+ this.coalesced.delete(key);
45
+ callback();
46
+ }, delay);
47
+ this.coalesced.set(key, id);
48
+ }
49
+ clearCoalesced(key) {
50
+ const id = this.coalesced.get(key);
51
+ if (id !== undefined) {
52
+ clearTimeout(id);
53
+ this.coalesced.delete(key);
54
+ }
55
+ }
40
56
  dispose() {
41
57
  this.timeouts.forEach((id) => clearTimeout(id));
42
58
  this.timeouts.clear();
@@ -44,36 +60,41 @@ export class TimerManager {
44
60
  this.intervals.clear();
45
61
  this.rafs.forEach((id) => cancelAnimationFrame(id));
46
62
  this.rafs.clear();
63
+ this.coalesced.forEach((id) => clearTimeout(id));
64
+ this.coalesced.clear();
47
65
  }
48
66
  }
49
- export function waitForElement(selector, root = document, options) {
50
- const existing = root.querySelector(selector);
67
+ export function isBrowser() {
68
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
69
+ }
70
+ export function waitForElement(selector, root, options) {
71
+ if (!isBrowser()) {
72
+ return Promise.resolve(null);
73
+ }
74
+ const resolvedRoot = root ?? document;
75
+ const existing = resolvedRoot.querySelector(selector);
51
76
  if (existing) {
52
77
  return Promise.resolve(existing);
53
78
  }
54
79
  return new Promise((resolve) => {
55
- var _a, _b;
56
- if ((_a = options === null || options === void 0 ? void 0 : options.signal) === null || _a === void 0 ? void 0 : _a.aborted) {
80
+ if (options?.signal?.aborted) {
57
81
  resolve(null);
58
82
  return;
59
83
  }
60
84
  const observer = new MutationObserver(() => {
61
- const el = root.querySelector(selector);
85
+ const el = resolvedRoot.querySelector(selector);
62
86
  if (el) {
63
87
  observer.disconnect();
64
88
  resolve(el);
65
89
  }
66
90
  });
67
- observer.observe(root instanceof Node ? root : document, {
91
+ observer.observe(resolvedRoot instanceof Node ? resolvedRoot : document, {
68
92
  childList: true,
69
93
  subtree: true,
70
94
  });
71
- (_b = options === null || options === void 0 ? void 0 : options.signal) === null || _b === void 0 ? void 0 : _b.addEventListener('abort', () => {
95
+ options?.signal?.addEventListener('abort', () => {
72
96
  observer.disconnect();
73
97
  resolve(null);
74
98
  }, { once: true });
75
99
  });
76
100
  }
77
- export function isBrowser() {
78
- return typeof window !== 'undefined' && typeof document !== 'undefined';
79
- }
@@ -0,0 +1,15 @@
1
+ export function hasHostNamedSlot(host, slotName, { hostTag, projectionRegionSelectors, excludedRegionSelectors }) {
2
+ const slotSelector = `[slot="${slotName}"]`;
3
+ const isOwn = (node) => node.closest(hostTag) === host;
4
+ const projectsToNamedSlot = (node) => {
5
+ if (!isOwn(node))
6
+ return false;
7
+ if (node.parentElement === host)
8
+ return true;
9
+ if (excludedRegionSelectors?.some((selector) => node.closest(selector) !== null)) {
10
+ return false;
11
+ }
12
+ return projectionRegionSelectors.some((selector) => node.closest(selector) !== null);
13
+ };
14
+ return Array.from(host.querySelectorAll(slotSelector)).some(projectsToNamedSlot);
15
+ }
@@ -0,0 +1,6 @@
1
+ export function hostHasNamedSlot(host, slotName) {
2
+ if (Array.from(host.children).some((child) => child.getAttribute('slot') === slotName)) {
3
+ return true;
4
+ }
5
+ return host.querySelector(`[slot="${slotName}"]`) != null;
6
+ }