@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,9 +1,59 @@
1
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
2
+ import { waitForHydration } from "../../../../.storybook/utils/wait-for-hydration";
1
3
  const escapeHtmlAttribute = (value) => value
2
4
  .replace(/&/g, '&')
3
5
  .replace(/"/g, '"')
4
6
  .replace(/'/g, ''')
5
7
  .replace(/</g, '&lt;')
6
8
  .replace(/>/g, '&gt;');
9
+ const renderHeaderItemWebComponent = (headerItem) => {
10
+ const attrs = [
11
+ `type="${headerItem.type}"`,
12
+ headerItem.label ? `label="${escapeHtmlAttribute(headerItem.label)}"` : '',
13
+ headerItem.icon ? `icon="${escapeHtmlAttribute(headerItem.icon)}"` : '',
14
+ headerItem.type === 'sub-account' && headerItem.selected ? 'selected' : '',
15
+ ]
16
+ .filter(Boolean)
17
+ .join(' ');
18
+ return `<xpl-side-nav-header-item ${attrs}></xpl-side-nav-header-item>`;
19
+ };
20
+ const renderHeaderItemsWebComponent = (headerItems) => {
21
+ if (!headerItems?.length)
22
+ return '';
23
+ const rows = headerItems.map(renderHeaderItemWebComponent).join('');
24
+ return `<div slot="nav-header">${rows}</div>`;
25
+ };
26
+ const renderHeaderItemHtml = (headerItem) => {
27
+ const isSubAccount = headerItem.type === 'sub-account';
28
+ const leading = headerItem.icon
29
+ ? `<span class="xpl-side-nav-header-item__leading"><xpl-icon icon="${escapeHtmlAttribute(headerItem.icon)}" size="16"></xpl-icon></span>`
30
+ : '';
31
+ const trailing = isSubAccount
32
+ ? `<span class="xpl-side-nav-header-item__trailing" aria-hidden="true"><xpl-icon icon="chevron-expand-y" size="16"></xpl-icon></span>`
33
+ : '';
34
+ const label = `<span class="xpl-side-nav-header-item__label">${escapeHtmlAttribute(headerItem.label)}</span>`;
35
+ const content = `<span class="xpl-side-nav-header-item__content">${leading}${label}${trailing}</span>`;
36
+ const inner = isSubAccount
37
+ ? `<button type="button" class="xpl-side-nav-header-item__header">${content}</button>`
38
+ : `<div class="xpl-side-nav-header-item__header">${content}</div>`;
39
+ const modifiers = [
40
+ isSubAccount
41
+ ? 'xpl-side-nav-header-item--sub-account'
42
+ : 'xpl-side-nav-header-item--product-label',
43
+ isSubAccount && headerItem.selected ? 'xpl-side-nav-header-item--selected' : '',
44
+ ]
45
+ .filter(Boolean)
46
+ .join(' ');
47
+ return `<div class="xpl-side-nav-header-item ${modifiers}">${inner}</div>`;
48
+ };
49
+ const renderHeaderItemsHtml = (headerItems) => {
50
+ if (!headerItems?.length)
51
+ return '';
52
+ const rows = headerItems.map(renderHeaderItemHtml).join('\n ');
53
+ return `<div class="xpl-side-nav__header">
54
+ ${rows}
55
+ </div>`;
56
+ };
7
57
  const defaultItems = [
8
58
  { label: 'Dashboard', icon: 'house-4', selected: true },
9
59
  { label: 'Product', icon: 'bag-shopping-2' },
@@ -28,6 +78,18 @@ const defaultItems = [
28
78
  icon: 'chart-line-up',
29
79
  trailingIcon: 'external-link',
30
80
  },
81
+ { kind: 'divider' },
82
+ {
83
+ kind: 'section',
84
+ label: 'Admin',
85
+ expanded: true,
86
+ badgeCount: '2',
87
+ children: [
88
+ { label: 'Team Members', icon: 'user' },
89
+ { label: 'Billing', icon: 'credit-card' },
90
+ ],
91
+ },
92
+ { kind: 'divider' },
31
93
  ];
32
94
  const defaultFooterItems = [
33
95
  { label: 'Support', icon: 'headset' },
@@ -35,11 +97,33 @@ const defaultFooterItems = [
35
97
  ];
36
98
  const defaultNavConfig = {
37
99
  navLabel: 'Main navigation',
100
+ headerItems: [
101
+ { type: 'product-label', label: 'Product Label' },
102
+ { type: 'sub-account', label: 'Acme Inc', icon: 'office-3' },
103
+ ],
38
104
  items: defaultItems,
39
105
  footerItems: defaultFooterItems,
40
106
  };
41
107
  const renderNavItem = (item) => {
42
- var _a, _b;
108
+ if (item.kind === 'divider') {
109
+ return `\n <hr class="xpl-side-nav-divider" />`;
110
+ }
111
+ if (item.kind === 'section') {
112
+ const sectionAttrs = [
113
+ item.label ? `heading="${escapeHtmlAttribute(item.label)}"` : '',
114
+ item.collapsible === false ? 'collapsible="false"' : '',
115
+ item.expanded ? 'expanded' : '',
116
+ ]
117
+ .filter(Boolean)
118
+ .join(' ');
119
+ const badgeSlot = item.badgeCount
120
+ ? `\n <xpl-badge slot="badge" variant="purple" size="small">${escapeHtmlAttribute(item.badgeCount)}</xpl-badge>`
121
+ : '';
122
+ const sectionChildrenHtml = item.children?.map(renderNavItem).join('') ?? '';
123
+ return `
124
+ <xpl-side-nav-section ${sectionAttrs}>${badgeSlot}${sectionChildrenHtml}
125
+ </xpl-side-nav-section>`;
126
+ }
43
127
  const attrs = [
44
128
  item.label ? `label="${escapeHtmlAttribute(item.label)}"` : '',
45
129
  item.icon ? `icon="${escapeHtmlAttribute(item.icon)}"` : '',
@@ -58,10 +142,10 @@ const renderNavItem = (item) => {
58
142
  : '';
59
143
  return `
60
144
  <xpl-side-nav-item ${attrs}>
61
- <a href="${escapeHtmlAttribute(item.href)}" class="xpl-side-nav-item__link"${item.selected ? ' aria-current="page"' : ''}><span class="xpl-side-nav-item__leading">${leadingIcon}</span><span class="xpl-side-nav-item__label">${escapeHtmlAttribute(item.label)}</span></a>
145
+ <a href="${escapeHtmlAttribute(item.href)}" class="xpl-side-nav-item__link"${item.selected ? ' aria-current="page"' : ''}><span class="xpl-side-nav-item__leading">${leadingIcon}</span><span class="xpl-side-nav-item__label">${escapeHtmlAttribute(item.label ?? '')}</span></a>
62
146
  </xpl-side-nav-item>`;
63
147
  }
64
- const childrenHtml = (_b = (_a = item.children) === null || _a === void 0 ? void 0 : _a.map(renderNavItem).join('')) !== null && _b !== void 0 ? _b : '';
148
+ const childrenHtml = item.children?.map(renderNavItem).join('') ?? '';
65
149
  const trailingSlot = item.trailingIcon && !item.hasChildren
66
150
  ? `\n <xpl-icon slot="trailing" icon="${escapeHtmlAttribute(item.trailingIcon)}" size="16" aria-hidden="true"></xpl-icon>`
67
151
  : '';
@@ -69,9 +153,35 @@ const renderNavItem = (item) => {
69
153
  <xpl-side-nav-item ${attrs}>${trailingSlot}${childrenHtml}
70
154
  </xpl-side-nav-item>`;
71
155
  };
156
+ let htmlSectionIdCounter = 0;
72
157
  const renderHtmlNavItem = (item, depth = 0) => {
73
- var _a, _b;
74
158
  const indent = ' '.repeat(depth);
159
+ if (item.kind === 'divider') {
160
+ return `${indent}<hr class="xpl-side-nav-divider" />`;
161
+ }
162
+ if (item.kind === 'section') {
163
+ const collapsible = item.collapsible !== false;
164
+ const expanded = !collapsible || Boolean(item.expanded);
165
+ const childrenId = `side-nav-demo-section-children-${(htmlSectionIdCounter += 1)}`;
166
+ const sectionChildrenHtml = item.children?.map((child) => renderHtmlNavItem(child, depth + 2)).join('\n') ?? '';
167
+ const badgeHtml = item.badgeCount
168
+ ? `${indent} <span class="xpl-side-nav-section__badge"><xpl-badge variant="purple" size="small">${item.badgeCount}</xpl-badge></span>\n`
169
+ : '';
170
+ const chevronHtml = collapsible
171
+ ? `${indent} <span class="xpl-side-nav-section__chevron"><xpl-icon icon="${expanded ? 'chevron-down' : 'chevron-right'}" size="16" aria-hidden="true"></xpl-icon></span>\n`
172
+ : '';
173
+ const titleRowHtml = `${indent} <span class="xpl-side-nav-section__title">${item.label ?? ''}</span>\n${badgeHtml}${chevronHtml}`;
174
+ const headerHtml = collapsible
175
+ ? `${indent} <button type="button" class="xpl-side-nav-section__header" aria-expanded="${expanded ? 'true' : 'false'}" aria-controls="${childrenId}">\n${titleRowHtml}${indent} </button>`
176
+ : `${indent} <div class="xpl-side-nav-section__header">\n${titleRowHtml}${indent} </div>`;
177
+ return `${indent}<div class="xpl-side-nav-section${collapsible ? '' : ' xpl-side-nav-section--static'}">
178
+ ${headerHtml}
179
+ ${indent} <div id="${childrenId}" class="xpl-side-nav-section__children${expanded ? ' expanded' : ''}">
180
+ ${indent} <div class="xpl-side-nav-section__children-inner">
181
+ ${sectionChildrenHtml ? `\n${sectionChildrenHtml}\n${indent} ` : ''}</div>
182
+ ${indent} </div>
183
+ ${indent}</div>`;
184
+ }
75
185
  const linkClass = [
76
186
  'xpl-side-nav-item__link',
77
187
  item.selected ? 'selected' : '',
@@ -88,7 +198,7 @@ ${indent} </a>
88
198
  ${indent}</div>`;
89
199
  }
90
200
  const hasChildren = item.hasChildren || (item.children && item.children.length > 0);
91
- const childrenHtml = (_b = (_a = item.children) === null || _a === void 0 ? void 0 : _a.map((child) => renderHtmlNavItem(child, depth + 2)).join('\n')) !== null && _b !== void 0 ? _b : '';
201
+ const childrenHtml = item.children?.map((child) => renderHtmlNavItem(child, depth + 2)).join('\n') ?? '';
92
202
  const trailingHtml = hasChildren
93
203
  ? `<span class="xpl-side-nav-item__trailing xpl-side-nav-item__trailing--chevron${item.expanded ? ' expanded' : ''}"><xpl-icon icon="${item.expanded ? 'chevron-up' : 'chevron-down'}" size="16" aria-hidden="true"></xpl-icon></span>`
94
204
  : item.trailingIcon
@@ -109,6 +219,13 @@ ${indent} </div>`
109
219
  ${indent}</div>`;
110
220
  };
111
221
  export default {
222
+ tags: ['vrt'],
223
+ beforeEach() {
224
+ setAutoSnapshotOptions({ enable: true });
225
+ },
226
+ async play({ canvasElement }) {
227
+ await waitForHydration(canvasElement);
228
+ },
112
229
  title: 'Components/Navigation/Side Navigation',
113
230
  component: 'xpl-side-nav',
114
231
  parameters: {
@@ -116,14 +233,18 @@ export default {
116
233
  },
117
234
  };
118
235
  const renderHtmlSideNav = (config) => {
119
- const { navLabel, items, footerItems } = config;
236
+ const { navLabel, headerItems, items, footerItems } = config;
237
+ const headerHtml = renderHeaderItemsHtml(headerItems);
120
238
  const itemsHtml = items.map((item) => renderHtmlNavItem(item, 4)).join('\n');
121
239
  const footerHtml = footerItems.map((item) => renderHtmlNavItem(item, 4)).join('\n');
122
240
  return `<div class="xpl-side-nav">
123
241
  <div class="xpl-side-nav__wrapper">
124
242
  <nav class="xpl-side-nav__content" aria-label="${escapeHtmlAttribute(navLabel)}">
125
- <div class="xpl-side-nav__section">
243
+ <div class="xpl-side-nav__scroll-area">
244
+ ${headerHtml}
245
+ <div class="xpl-side-nav__section">
126
246
  ${itemsHtml}
247
+ </div>
127
248
  </div>
128
249
  <div class="xpl-side-nav__footer">
129
250
  ${footerHtml}
@@ -133,24 +254,26 @@ ${footerHtml}
133
254
  </div>`;
134
255
  };
135
256
  const SideNavigationWebComponent = (config) => {
136
- const { navLabel, items, footerItems } = config;
257
+ const { navLabel, headerItems, items, footerItems } = config;
258
+ const headerHtml = renderHeaderItemsWebComponent(headerItems);
137
259
  const itemsHtml = items.map(renderNavItem).join('');
138
260
  const footerHtml = footerItems.map(renderNavItem).join('');
139
- return `<xpl-side-nav label="${escapeHtmlAttribute(navLabel)}"><div slot="section">${itemsHtml}</div><div slot="nav-footer">${footerHtml}</div></xpl-side-nav>`;
261
+ return `<xpl-side-nav label="${escapeHtmlAttribute(navLabel)}">${headerHtml}<div slot="section">${itemsHtml}</div><div slot="nav-footer">${footerHtml}</div></xpl-side-nav>`;
140
262
  };
141
263
  let sideNavClickController;
142
264
  export const SideNavigation = {
143
265
  args: {
144
- navConfig: Object.assign({}, defaultNavConfig),
266
+ navConfig: { ...defaultNavConfig },
145
267
  },
146
268
  argTypes: {
147
269
  navConfig: {
148
270
  control: 'object',
149
- description: 'Full sidebar config (router-style): `navLabel`, `items[]`, `footerItems[]`. Arrays map to `xpl-side-nav-item` markup.',
271
+ description: 'Full sidebar config (router-style): `navLabel`, `headerItems?[]`, `items[]`, `footerItems[]`. Each entry maps to `xpl-side-nav-item` markup by default; set `kind: \'section\'` for an `xpl-side-nav-section` accordion or `kind: \'divider\'` for a standalone `<hr class="xpl-side-nav-divider">` (no dedicated component). `headerItems` renders `slot="nav-header"` as one or more `xpl-side-nav-header-item` rows — omit or leave empty to hide the header.',
150
272
  },
151
273
  },
152
274
  render: ({ navConfig }) => {
153
- const { navLabel, items, footerItems } = navConfig;
275
+ const { navLabel, headerItems, items, footerItems } = navConfig;
276
+ const headerHtml = renderHeaderItemsWebComponent(headerItems);
154
277
  const itemsHtml = items.map(renderNavItem).join('');
155
278
  const footerHtml = footerItems.map(renderNavItem).join('');
156
279
  return `
@@ -208,6 +331,7 @@ export const SideNavigation = {
208
331
  </style>
209
332
  <div class="side-nav-demo-wrapper">
210
333
  <xpl-side-nav label="${escapeHtmlAttribute(navLabel)}">
334
+ ${headerHtml}
211
335
  <div slot="section">${itemsHtml}
212
336
  </div>
213
337
  <div slot="nav-footer">${footerHtml}
@@ -223,9 +347,16 @@ export const SideNavigation = {
223
347
  label (flex-1)<br/>
224
348
  <code>slot="trailing"</code> — trailing icon; auto chevron for parents (<code>chevron-down</code> collapsed, <code>chevron-up</code> expanded)
225
349
  </div>
350
+ <div class="side-nav-demo-legend">
351
+ <strong>Sections &amp; dividers</strong> (near the bottom of this demo's items): <code>kind: 'section'</code> renders an <code>xpl-side-nav-section</code> accordion — its <code>children</code> are NOT indented and keep their leading icon, unlike a <code>hasChildren</code> item. <code>kind: 'divider'</code> renders a standalone, full-bleed <code>&lt;hr class="xpl-side-nav-divider"&gt;</code> — no dedicated component. Sections don't render their own dividers — place them as siblings.
352
+ </div>
353
+ <div class="side-nav-demo-legend">
354
+ <strong><code>slot="nav-header"</code></strong> (top of the sidebar, above the section): renders one or more <code>xpl-side-nav-header-item</code> rows. Hidden entirely — no wrapper, no border — when <code>navConfig.headerItems</code> is omitted or empty. This demo stacks a <code>'product-label'</code> row (static) above a <code>'sub-account'</code> row (interactive; emits <code>navigate</code>, auto <code>chevron-expand-y</code> trailing icon), per the Figma spec.
355
+ </div>
226
356
  <div class="side-nav-demo-legend">
227
357
  <strong><code>NavItem</code></strong><br/>
228
- <code>{ label, icon?, trailingIcon?, selected?, disabled?, hidden?, hasChildren?, expanded?, link?, href?, children? }</code>
358
+ <code>{ kind?, label?, icon?, trailingIcon?, selected?, disabled?, hidden?, hasChildren?, expanded?, link?, href?, children?, collapsible?, badgeCount? }</code><br/>
359
+ <code>kind</code> defaults to <code>'item'</code>; <code>collapsible</code> / <code>badgeCount</code> apply only to <code>kind: 'section'</code> entries.
229
360
  </div>
230
361
  <div class="side-nav-demo-legend">
231
362
  <strong>Responsive (below <code>md</code> / 768 px):</strong><br/>
@@ -239,7 +370,8 @@ export const SideNavigation = {
239
370
  </div>`;
240
371
  },
241
372
  play: async ({ canvasElement }) => {
242
- sideNavClickController === null || sideNavClickController === void 0 ? void 0 : sideNavClickController.abort();
373
+ await waitForHydration(canvasElement);
374
+ sideNavClickController?.abort();
243
375
  sideNavClickController = new AbortController();
244
376
  const nav = canvasElement.querySelector('xpl-side-nav');
245
377
  if (!nav)
@@ -355,7 +487,7 @@ export const ItemPlayground = {
355
487
  if (link) {
356
488
  const leadingIcon = icon ? `<xpl-icon icon="${icon}" size="16"></xpl-icon>` : '';
357
489
  content = `
358
- <a href="#${(label === null || label === void 0 ? void 0 : label.toLowerCase().replace(/\s+/g, '-')) || 'item'}" class="xpl-side-nav-item__link"><span class="xpl-side-nav-item__leading">${leadingIcon}</span><span class="xpl-side-nav-item__label">${label}</span></a>`;
490
+ <a href="#${label?.toLowerCase().replace(/\s+/g, '-') || 'item'}" class="xpl-side-nav-item__link"><span class="xpl-side-nav-item__leading">${leadingIcon}</span><span class="xpl-side-nav-item__label">${label}</span></a>`;
359
491
  }
360
492
  else if (hasChildren) {
361
493
  content = `${trailingSlot}
@@ -433,6 +565,306 @@ ExternalLinkItem.parameters = {
433
565
  },
434
566
  },
435
567
  };
568
+ export const Divider = () => `
569
+ <style>
570
+ .divider-demo {
571
+ padding: var(--xpl-space-16);
572
+ border: var(--xpl-border-small) solid var(--xpl-border-default);
573
+ background-color: var(--xpl-background-surface-subtlest);
574
+ border-radius: var(--xpl-border-radius-default);
575
+ height: auto;
576
+ min-height: 0;
577
+ overflow: hidden;
578
+ }
579
+ .divider-caption {
580
+ font-family: var(--xpl-font-family-default);
581
+ font-size: var(--xpl-font-size-caption);
582
+ color: var(--xpl-text-subdued);
583
+ margin-bottom: var(--xpl-space-8);
584
+ }
585
+ </style>
586
+ <p class="divider-caption">1px full-bleed separator: a plain <code>&lt;hr class="xpl-side-nav-divider"&gt;</code>, no component. Place directly between items or sections inside <code>slot="section"</code>.</p>
587
+ <div class="xpl-side-nav divider-demo">
588
+ <div class="xpl-side-nav__section">
589
+ <xpl-side-nav-item label="Dashboard" icon="house-4" selected></xpl-side-nav-item>
590
+ <xpl-side-nav-item label="Reports" icon="chart-line"></xpl-side-nav-item>
591
+ <hr class="xpl-side-nav-divider" />
592
+ <xpl-side-nav-item label="Settings" icon="gear"></xpl-side-nav-item>
593
+ <xpl-side-nav-item label="Integrations" icon="plug"></xpl-side-nav-item>
594
+ </div>
595
+ </div>`;
596
+ Divider.parameters = {
597
+ layout: 'centered',
598
+ design: {
599
+ type: 'figma',
600
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=25334-29185',
601
+ },
602
+ docs: {
603
+ description: {
604
+ story: 'A 1px full-bleed separator (`--xpl-border-default`) consumers place between `xpl-side-nav-item` / `xpl-side-nav-section` elements inside `slot="section"`. There is no dedicated component — it\'s a plain `<hr class="xpl-side-nav-divider">`, styled by `side-nav.css` (which leans on `reset.css`\'s default `<hr>` border rather than fighting it), giving it the native implicit `role="separator"` for free.',
605
+ },
606
+ },
607
+ };
608
+ export const SectionPlayground = {
609
+ argTypes: {
610
+ heading: {
611
+ control: 'text',
612
+ description: 'Section title text',
613
+ },
614
+ collapsible: {
615
+ control: 'boolean',
616
+ description: 'Whether the section can be collapsed/expanded. When false, renders a static title (no chevron) and children are always shown.',
617
+ },
618
+ expanded: {
619
+ control: 'boolean',
620
+ description: 'Whether the section is expanded (only meaningful when collapsible)',
621
+ },
622
+ badgeCount: {
623
+ control: 'text',
624
+ description: 'Optional badge text composed into slot="badge" via xpl-badge. Leave empty to hide the badge.',
625
+ },
626
+ },
627
+ args: {
628
+ heading: 'Settings',
629
+ collapsible: true,
630
+ expanded: false,
631
+ badgeCount: '',
632
+ },
633
+ render: ({ heading, collapsible, expanded, badgeCount }) => {
634
+ const attrs = [
635
+ heading ? `heading="${escapeHtmlAttribute(heading)}"` : '',
636
+ !collapsible ? 'collapsible="false"' : '',
637
+ collapsible && expanded ? 'expanded' : '',
638
+ ]
639
+ .filter(Boolean)
640
+ .join(' ');
641
+ const badgeSlot = badgeCount
642
+ ? `\n <xpl-badge slot="badge" variant="purple" size="small">${escapeHtmlAttribute(badgeCount)}</xpl-badge>`
643
+ : '';
644
+ return `
645
+ <style>
646
+ .section-playground-wrapper {
647
+ padding: var(--xpl-space-16);
648
+ border: var(--xpl-border-small) solid var(--xpl-border-default);
649
+ background-color: var(--xpl-background-surface-subtlest);
650
+ border-radius: var(--xpl-border-radius-default);
651
+ height: auto;
652
+ min-height: 0;
653
+ width: 240px;
654
+ }
655
+ </style>
656
+ <div class="xpl-side-nav section-playground-wrapper">
657
+ <xpl-side-nav-section ${attrs}>${badgeSlot}
658
+ <xpl-side-nav-item label="Location" icon="pin"></xpl-side-nav-item>
659
+ <xpl-side-nav-item label="Schedule" icon="calendar"></xpl-side-nav-item>
660
+ </xpl-side-nav-section>
661
+ </div>`;
662
+ },
663
+ parameters: {
664
+ layout: 'centered',
665
+ design: {
666
+ type: 'figma',
667
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=25334-29188',
668
+ },
669
+ docs: {
670
+ description: {
671
+ story: 'Interactive playground for `xpl-side-nav-section`. Toggle `collapsible` to switch between the accordion header (with chevron, `chevron-right` collapsed / `chevron-down` expanded) and the static title variant (no chevron, children always shown). Set `badgeCount` to compose an `xpl-badge` into `slot="badge"` — the wrapper is suppressed when empty. Section children keep their leading icon and are NOT indented, unlike `xpl-side-nav-item[has-children]`.',
672
+ },
673
+ },
674
+ },
675
+ };
676
+ export const SectionsAndDividers = () => `
677
+ <style>
678
+ .sections-dividers-demo {
679
+ display: flex;
680
+ height: 600px;
681
+ background-color: var(--xpl-background-surface-subtle);
682
+ border: var(--xpl-border-small) solid var(--xpl-border-default);
683
+ }
684
+ </style>
685
+ <div class="sections-dividers-demo">
686
+ <div class="xpl-side-nav">
687
+ <div class="xpl-side-nav__wrapper">
688
+ <nav class="xpl-side-nav__content" aria-label="Main navigation">
689
+ <div class="xpl-side-nav__scroll-area">
690
+ <div class="xpl-side-nav__section">
691
+ <xpl-side-nav-item label="Nav Item 1" icon="house-4" selected></xpl-side-nav-item>
692
+ <xpl-side-nav-item label="Nav Item 2" icon="bag-shopping-2"></xpl-side-nav-item>
693
+
694
+ <hr class="xpl-side-nav-divider" />
695
+
696
+ <xpl-side-nav-item has-children expanded label="Nav Item Parent Open" icon="gear">
697
+ <xpl-side-nav-item label="Child 1"></xpl-side-nav-item>
698
+ <xpl-side-nav-item label="Child 2"></xpl-side-nav-item>
699
+ </xpl-side-nav-item>
700
+ <xpl-side-nav-item label="Nav Item 4" icon="star"></xpl-side-nav-item>
701
+
702
+ <hr class="xpl-side-nav-divider" />
703
+
704
+ <xpl-side-nav-section heading="Section Closed">
705
+ <xpl-side-nav-item has-children label="Nav Item Parent">
706
+ <xpl-side-nav-item label="Child A"></xpl-side-nav-item>
707
+ </xpl-side-nav-item>
708
+ <xpl-side-nav-item has-children label="Nav Item Parent">
709
+ <xpl-side-nav-item label="Child B"></xpl-side-nav-item>
710
+ </xpl-side-nav-item>
711
+ </xpl-side-nav-section>
712
+
713
+ <hr class="xpl-side-nav-divider" />
714
+
715
+ <xpl-side-nav-section heading="Section Open" expanded>
716
+ <xpl-side-nav-item label="Nav Item 6" icon="chart-line"></xpl-side-nav-item>
717
+ <xpl-side-nav-item label="Nav Item 7" icon="plug"></xpl-side-nav-item>
718
+ </xpl-side-nav-section>
719
+
720
+ <hr class="xpl-side-nav-divider" />
721
+
722
+ <xpl-side-nav-section heading="Section Label Only" collapsible="false">
723
+ <xpl-side-nav-item label="Nav Item 8" icon="headset"></xpl-side-nav-item>
724
+ </xpl-side-nav-section>
725
+ </div>
726
+ </div>
727
+ <div class="xpl-side-nav__footer">
728
+ <xpl-side-nav-item label="Settings" icon="gear"></xpl-side-nav-item>
729
+ <xpl-side-nav-item label="Help" icon="headset"></xpl-side-nav-item>
730
+ </div>
731
+ </nav>
732
+ </div>
733
+ </div>
734
+ </div>`;
735
+ SectionsAndDividers.parameters = {
736
+ layout: 'fullscreen',
737
+ design: {
738
+ type: 'figma',
739
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=50573-8171',
740
+ },
741
+ docs: {
742
+ description: {
743
+ story: 'Composite example mirroring the Figma "Example with Sections and dividers" node (`50573-8171`): top-level items, a divider, an expanded `has-children` item, a divider, a closed `xpl-side-nav-section` with two parent items, a divider, an open section, a divider, a static label-only section, and a footer. Dividers (`<hr class="xpl-side-nav-divider">`, no dedicated component) are standalone and consumer-placed — sections do not render their own.',
744
+ },
745
+ },
746
+ };
747
+ export const HeaderItemPlayground = {
748
+ argTypes: {
749
+ type: {
750
+ control: 'select',
751
+ options: ['product-label', 'sub-account'],
752
+ description: '`product-label` is a static, non-interactive label. `sub-account` is an interactive button that emits `navigate`.',
753
+ },
754
+ label: {
755
+ control: 'text',
756
+ description: 'Display label for the header item',
757
+ },
758
+ icon: {
759
+ control: 'text',
760
+ description: 'Icon name — default content for `slot="leading"`. Leave empty to omit the leading column entirely (matches the Figma optional-icon variants).',
761
+ },
762
+ selected: {
763
+ control: 'boolean',
764
+ description: 'Selected state — only meaningful for `type="sub-account"`; applies the information-surface pill.',
765
+ },
766
+ },
767
+ args: {
768
+ type: 'product-label',
769
+ label: 'Product Label',
770
+ icon: '',
771
+ selected: false,
772
+ },
773
+ render: ({ type, label, icon, selected }) => {
774
+ const attrs = [
775
+ `type="${type}"`,
776
+ label ? `label="${escapeHtmlAttribute(label)}"` : '',
777
+ icon ? `icon="${escapeHtmlAttribute(icon)}"` : '',
778
+ type === 'sub-account' && selected ? 'selected' : '',
779
+ ]
780
+ .filter(Boolean)
781
+ .join(' ');
782
+ return `
783
+ <style>
784
+ /*
785
+ * Standalone preview at sidebar width. Deliberately does NOT use the
786
+ * .xpl-side-nav host class: below the md breakpoint that class collapses to
787
+ * the mobile top-bar (fixed bar height, overflow, borders) and would clip /
788
+ * restyle this docs card. The header item's own CSS is self-contained.
789
+ */
790
+ .header-item-playground-wrapper {
791
+ display: flex;
792
+ flex-direction: column;
793
+ padding: var(--xpl-space-16);
794
+ border: var(--xpl-border-small) solid var(--xpl-border-default);
795
+ background-color: var(--xpl-background-surface-subtlest);
796
+ border-radius: var(--xpl-border-radius-default);
797
+ height: auto;
798
+ min-height: 0;
799
+ width: 240px;
800
+ }
801
+ </style>
802
+ <div class="header-item-playground-wrapper">
803
+ <xpl-side-nav-header-item ${attrs}></xpl-side-nav-header-item>
804
+ </div>`;
805
+ },
806
+ parameters: {
807
+ layout: 'centered',
808
+ design: {
809
+ type: 'figma',
810
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=51299-9007',
811
+ },
812
+ docs: {
813
+ description: {
814
+ story: 'Interactive playground for `xpl-side-nav-header-item` (Figma `<navHeaderItem>`). `product-label` renders a static, subdued label; `sub-account` renders an interactive button that emits `navigate` and auto-renders a `chevron-expand-y` trailing icon when no `slot="trailing"` content is provided. In context it slots into `xpl-side-nav`\'s `nav-header` slot — see the full **Side Navigation** story.',
815
+ },
816
+ },
817
+ },
818
+ };
819
+ export const HeaderItemAllVariants = () => `
820
+ <style>
821
+ .header-item-variants-demo {
822
+ display: flex;
823
+ flex-direction: column;
824
+ gap: var(--xpl-space-8);
825
+ padding: var(--xpl-space-16);
826
+ border: var(--xpl-border-small) solid var(--xpl-border-default);
827
+ background-color: var(--xpl-background-surface-subtlest);
828
+ border-radius: var(--xpl-border-radius-default);
829
+ height: auto;
830
+ min-height: 0;
831
+ width: 240px;
832
+ }
833
+ .header-item-variants-caption {
834
+ font-family: var(--xpl-font-family-default);
835
+ font-size: var(--xpl-font-size-caption);
836
+ color: var(--xpl-text-subdued);
837
+ margin: 0 0 var(--xpl-space-4);
838
+ }
839
+ </style>
840
+ <div class="header-item-variants-demo">
841
+ <p class="header-item-variants-caption">product-label</p>
842
+ <xpl-side-nav-header-item label="My Product"></xpl-side-nav-header-item>
843
+ <xpl-side-nav-header-item label="My Product" icon="house-4"></xpl-side-nav-header-item>
844
+
845
+ <p class="header-item-variants-caption">sub-account (resting)</p>
846
+ <xpl-side-nav-header-item type="sub-account" label="Acme Inc"></xpl-side-nav-header-item>
847
+ <xpl-side-nav-header-item type="sub-account" label="Acme Inc" icon="pin"></xpl-side-nav-header-item>
848
+ <xpl-side-nav-header-item type="sub-account" label="Xplor Growth">
849
+ <xpl-icon slot="trailing" icon="external-link" size="16" aria-hidden="true"></xpl-icon>
850
+ </xpl-side-nav-header-item>
851
+
852
+ <p class="header-item-variants-caption">sub-account (selected)</p>
853
+ <xpl-side-nav-header-item type="sub-account" label="Acme Inc" selected></xpl-side-nav-header-item>
854
+ <xpl-side-nav-header-item type="sub-account" label="Acme Inc" icon="pin" selected></xpl-side-nav-header-item>
855
+ </div>`;
856
+ HeaderItemAllVariants.parameters = {
857
+ layout: 'centered',
858
+ design: {
859
+ type: 'figma',
860
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=51299-9007',
861
+ },
862
+ docs: {
863
+ description: {
864
+ story: 'All `xpl-side-nav-header-item` variants side by side: `product-label` with and without a leading icon, `sub-account` resting (default auto chevron, with a leading icon, and with a custom slotted trailing icon replacing the auto chevron), and `sub-account` selected (8px-radius information-surface pill around the whole row content — leading icon, label, and trailing chevron — matching the item rows).',
865
+ },
866
+ },
867
+ };
436
868
  export const ParentWithLeadingIcon = () => `
437
869
  <style>
438
870
  .parent-leading-demo {
@@ -542,11 +974,15 @@ ${footerHtml}
542
974
  </div>
543
975
  </div>`;
544
976
  };
545
- FooterSlot.parameters = Object.assign(Object.assign({}, FooterSlot.parameters), { 'web-component': {
977
+ FooterSlot.parameters = {
978
+ ...FooterSlot.parameters,
979
+ 'web-component': {
546
980
  render: FooterSlotWebComponent(FooterSlot.args),
547
- }, html: {
981
+ },
982
+ html: {
548
983
  render: FooterSlotHtml(FooterSlot.args),
549
- } });
984
+ },
985
+ };
550
986
  const mobileItems = [
551
987
  { label: 'Dashboard', icon: 'house-4', selected: true },
552
988
  { label: 'Product', icon: 'bag-shopping-2' },