@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
@@ -17,13 +17,12 @@ export class Table {
17
17
  this.areAllSelected = false;
18
18
  this.hasScrolled = false;
19
19
  this.sortTypeArray = [];
20
- this.selectAllValue = Math.random().toString(36).slice(2);
21
20
  this.selectAll = (e) => {
22
21
  const checked = e.detail;
23
22
  this.areAllSelected = checked;
24
23
  this.selected =
25
24
  this.selectedValues.length > 0
26
- ? Array.from(this.el.querySelectorAll('tbody td:first-child xpl-checkbox')).map((checkbox) => (checked ? checkbox.value : checked))
25
+ ? Array.from(this.el.querySelectorAll('tbody td:first-child xpl-checkbox')).map((checkbox) => (checked ? (checkbox.value ?? checked) : checked))
27
26
  : this.selected.map(() => checked);
28
27
  this.onChange();
29
28
  };
@@ -33,7 +32,11 @@ export class Table {
33
32
  this.selected = this.selected.map((v, selectedIdx) => {
34
33
  if (selectedIdx !== checkboxIdx)
35
34
  return v;
36
- return this.selectedValues.length > 0 ? (checked ? value : checked) : checked;
35
+ return this.selectedValues.length > 0
36
+ ? checked
37
+ ? (value ?? checked)
38
+ : checked
39
+ : checked;
37
40
  });
38
41
  this.areAllSelected = this.selected.every((v) => !!v);
39
42
  this.onChange();
@@ -65,19 +68,15 @@ export class Table {
65
68
  this.rowData.sort((a, b) => handleSort(b, a));
66
69
  break;
67
70
  default:
68
- this.rowData = this.data;
71
+ this.rowData = this.data ? Array.from(this.data) : [];
69
72
  this.sortTypeArray[col] = null;
70
73
  break;
71
74
  }
72
75
  this.rowData = Array.from(this.rowData);
73
- this.render();
74
76
  };
75
77
  this.setData = () => {
76
78
  this.rowData = this.data !== undefined ? Array.from(this.data) : [];
77
79
  };
78
- this.setFooterData = () => {
79
- this.rowFooterData = this.footer !== undefined ? Array.from(this.footer) : [];
80
- };
81
80
  }
82
81
  handleSort(clickEvt, isColumnSortable, colNum, colName) {
83
82
  clickEvt.preventDefault();
@@ -107,43 +106,63 @@ export class Table {
107
106
  watchData() {
108
107
  this.setData();
109
108
  }
110
- watchFooterData() {
111
- this.setFooterData();
112
- }
113
109
  watchColumns() {
114
110
  this.sortTypeArray = this.columns ? this.columns.map(() => null) : [];
115
111
  }
116
112
  componentWillLoad() {
113
+ this.ensureSelectAllValue();
117
114
  this.areAllSelected = false;
118
115
  this.setData();
119
- this.setFooterData();
120
116
  this.selected = new Array(this.rowData.length).fill(false);
121
- this.sortTypeArray = this.columns ? this.columns.map(() => null) : [];
117
+ this.ensureSortTypeArray();
122
118
  }
123
- render() {
124
- var _a;
119
+ ensureSelectAllValue() {
120
+ if (this.selectAllValue !== undefined) {
121
+ return;
122
+ }
123
+ const hostId = this.el.id?.trim();
124
+ if (hostId) {
125
+ this.selectAllValue = `${hostId}-select-all`;
126
+ return;
127
+ }
128
+ const persisted = this.el.getAttribute('data-select-all-value');
129
+ if (persisted) {
130
+ this.selectAllValue = persisted;
131
+ return;
132
+ }
133
+ Table.selectAllSeq += 1;
134
+ this.selectAllValue = `select-all-${Table.selectAllSeq}`;
135
+ this.el.setAttribute('data-select-all-value', this.selectAllValue);
136
+ }
137
+ ensureSortTypeArray() {
125
138
  if (this.columns &&
126
139
  (!this.sortTypeArray || this.sortTypeArray.length !== this.columns.length)) {
127
140
  this.sortTypeArray = this.columns.map(() => null);
128
141
  }
129
- return (h(Host, { key: 'b2ed918c3c434b6403fe6d18619d0a1a5bf864bf' }, h("div", { key: 'd55accaecba09869f07dcc7030eca5cc1175dd95', class: "xpl-table-container", onScroll: this.onScroll, ref: (el) => {
130
- this.container = el;
131
- } }, h("table", { key: '6406b92ee6717c80f5f363110fda38fa5bbe61ff', class: {
142
+ else if (!this.columns) {
143
+ this.sortTypeArray = [];
144
+ }
145
+ }
146
+ render() {
147
+ const rowFooterData = this.footer !== undefined ? Array.from(this.footer) : [];
148
+ return (h(Host, { key: 'c1de0e2cfd09c45e3c3f3fb9d8ad47615031a42f' }, h("div", { key: 'ae6f19f8fd43c1b9f647ec901d2f01933625860d', class: "xpl-table-container", onScroll: this.onScroll, ref: (el) => {
149
+ if (el)
150
+ this.container = el;
151
+ } }, h("table", { key: '0a4b2c06785a26046d95b24a22c1d5bc4abea306', class: {
132
152
  'xpl-table': true,
133
- 'xpl-table--striped': this.striped,
134
- 'xpl-table--freeze': this.freeze,
153
+ 'xpl-table--striped': !!this.striped,
154
+ 'xpl-table--freeze': !!this.freeze,
135
155
  'xpl-table--has-scrolled': this.hasScrolled,
136
- } }, this.columns && (h("thead", { key: '2f89526153301be4ad9ba2f2ec2dac791b4702ae' }, this.columns.map((column, i) => {
137
- var _a;
138
- const iconType = getIconType((_a = this.sortTypeArray) === null || _a === void 0 ? void 0 : _a[i]);
156
+ } }, this.columns && (h("thead", { key: '9298a70476ea69fa530fb50992643f70b4266c26' }, this.columns.map((column, i) => {
157
+ const iconType = getIconType(this.sortTypeArray?.[i]);
139
158
  const isColumnSortable = !!(this.isSortable && this.sortableColumns[i]);
140
159
  return (h("th", null, h("label", { onClick: (e) => this.handleSort(e, isColumnSortable, i, column.replace(/ /g, '-').toLowerCase()), class: isColumnSortable ? 'cursor-pointer' : '' }, this.multiselect && i === 0 && (h("xpl-checkbox", { checked: this.areAllSelected, indeterminate: !this.areAllSelected &&
141
- this.selected.some((a) => a), onClick: (e) => e.stopPropagation(), onCheckboxChange: (e) => this.selectAll(e), value: `select-all-${this.selectAllValue}`, "aria-label": "Select all rows" })), column, isColumnSortable && !!this.sortTypeArray[i] && (h("xpl-icon", { icon: iconType, size: 16 })))));
142
- }))), h("tbody", { key: 'd1c762bc09191ac0b5b84ade9409d87a726f15f4' }, this.rowData.map((row, rowNum) => (h("tr", { class: this.selected && this.selected[rowNum]
160
+ this.selected.some((a) => a), onClick: (e) => e.stopPropagation(), onCheckboxChange: (e) => this.selectAll(e), value: this.selectAllValue, "aria-label": "Select all rows" })), column, isColumnSortable && !!this.sortTypeArray[i] && (h("xpl-icon", { icon: iconType, size: 16 })))));
161
+ }))), h("tbody", { key: 'b4bb753f41278360c8f34015a982b04771b59064' }, this.rowData.map((row, rowNum) => (h("tr", { class: this.selected && this.selected[rowNum]
143
162
  ? 'xpl-table-row-selected'
144
163
  : '' }, row.map((cell, i) => (h("td", null, this.multiselect && i === 0 ? (h("label", null, h("xpl-checkbox", { checked: !!this.selected[rowNum], onCheckboxChange: (e) => this.selectOne(e, rowNum), value: this.selectedValues.length > 0
145
164
  ? this.selectedValues[rowNum]
146
- : `xpl-table-checkbox-${rowNum}`, "aria-label": `Select row ${rowNum + 1}` }), h("div", { innerHTML: cell }))) : (h("div", { innerHTML: cell }))))))))), ((_a = this.rowFooterData) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("tfoot", { key: '99e0e8cbe768f3c565d5fd6328c6e305483bf3f1' }, this.rowFooterData.map((row) => (h("tr", null, row.map((cell) => (h("td", null, h("div", { innerHTML: cell })))))))))))));
165
+ : `xpl-table-checkbox-${rowNum}`, "aria-label": `Select row ${rowNum + 1}` }), h("div", { innerHTML: cell }))) : (h("div", { innerHTML: cell }))))))))), rowFooterData.length > 0 && (h("tfoot", { key: '571bb59b2a69b0b22bf45297484c2c9e01ae3a78' }, rowFooterData.map((row) => (h("tr", null, row.map((cell) => (h("td", null, h("div", { innerHTML: cell })))))))))))));
147
166
  }
148
167
  static get is() { return "xpl-table"; }
149
168
  static get properties() {
@@ -265,7 +284,7 @@ export class Table {
265
284
  "references": {}
266
285
  },
267
286
  "required": false,
268
- "optional": true,
287
+ "optional": false,
269
288
  "docs": {
270
289
  "tags": [],
271
290
  "text": "The values for the input for each row when multiselect is activated."
@@ -283,7 +302,7 @@ export class Table {
283
302
  "references": {}
284
303
  },
285
304
  "required": false,
286
- "optional": true,
305
+ "optional": false,
287
306
  "docs": {
288
307
  "tags": [],
289
308
  "text": "Toggles to show the sort button on each table head"
@@ -303,7 +322,7 @@ export class Table {
303
322
  "references": {}
304
323
  },
305
324
  "required": false,
306
- "optional": true,
325
+ "optional": false,
307
326
  "docs": {
308
327
  "tags": [],
309
328
  "text": "Manually determined if the column is sortable"
@@ -318,7 +337,6 @@ export class Table {
318
337
  return {
319
338
  "areAllSelected": {},
320
339
  "rowData": {},
321
- "rowFooterData": {},
322
340
  "hasScrolled": {},
323
341
  "selected": {},
324
342
  "sortTypeArray": {}
@@ -348,11 +366,11 @@ export class Table {
348
366
  "composed": true,
349
367
  "docs": {
350
368
  "tags": [],
351
- "text": "Emits an event whenever the sort changes.\nThe 'sortChanged' event passes an object with colNum (number), colName (string), sortTypeArr(string[]).\nThe default action can be overridden by calling event.preventDefault()."
369
+ "text": "Emits an event whenever the sort changes.\nThe 'sortChanged' event passes an object with colNum (number), colName (string), sortTypeArr(('asc' | 'desc' | null)[]).\nThe default action can be overridden by calling event.preventDefault()."
352
370
  },
353
371
  "complexType": {
354
- "original": "{\n colNum: number;\n colName: string;\n sortTypeArr: string[];\n }",
355
- "resolved": "{ colNum: number; colName: string; sortTypeArr: string[]; }",
372
+ "original": "{\n colNum: number;\n colName: string;\n sortTypeArr: ('asc' | 'desc' | null)[];\n }",
373
+ "resolved": "{ colNum: number; colName: string; sortTypeArr: (\"desc\" | \"asc\")[]; }",
356
374
  "references": {}
357
375
  }
358
376
  }];
@@ -362,12 +380,10 @@ export class Table {
362
380
  return [{
363
381
  "propName": "data",
364
382
  "methodName": "watchData"
365
- }, {
366
- "propName": "footer",
367
- "methodName": "watchFooterData"
368
383
  }, {
369
384
  "propName": "columns",
370
385
  "methodName": "watchColumns"
371
386
  }];
372
387
  }
373
388
  }
389
+ Table.selectAllSeq = 0;
@@ -1,3 +1,5 @@
1
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
2
+ import { waitForHydration } from "../../../../.storybook/utils/wait-for-hydration";
1
3
  export default {
2
4
  title: 'Components/Dynamic Table/Table Header',
3
5
  component: 'xpl-table-header',
@@ -48,7 +50,13 @@ export default {
48
50
  },
49
51
  thirdCellSortable: { control: 'boolean' },
50
52
  },
51
- tags: ['beta'],
53
+ tags: ['beta', 'vrt'],
54
+ beforeEach() {
55
+ setAutoSnapshotOptions({ enable: true });
56
+ },
57
+ async play({ canvasElement }) {
58
+ await waitForHydration(canvasElement);
59
+ },
52
60
  };
53
61
  export const TableHeader = ({ firstCellType, firstCellLabel, firstCellIcon, firstCellWidth, firstCellSortable, secondCellType, secondCellLabel, secondCellIcon, secondCellWidth, secondCellSortable, thirdCellType, thirdCellLabel, thirdCellIcon, thirdCellWidth, thirdCellSortable, }) => `
54
62
  <xpl-dynamic-table>
@@ -1,7 +1,7 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  export class TableHeader {
3
3
  render() {
4
- return (h(Host, { key: 'f50c2c0ca2743e47ad44a368a9ea684c57a72261', role: "row", class: "xpl-table-header" }, h("slot", { key: '7a61b45818de8675015ca3defb9ee8c3280e961a' })));
4
+ return (h(Host, { key: '6a9997040f64ebc1ede766230c0310a11fd23fd5', role: "row", class: "xpl-table-header" }, h("slot", { key: 'b9359ac81366cc2a0790b2268a0a5443867bbadc' })));
5
5
  }
6
6
  static get is() { return "xpl-table-header"; }
7
7
  }
@@ -1,3 +1,5 @@
1
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
2
+ import { waitForHydration } from "../../../../.storybook/utils/wait-for-hydration";
1
3
  export default {
2
4
  title: 'Components/Dynamic Table/Table Header Cell',
3
5
  component: 'xpl-table-header-cell',
@@ -18,9 +20,15 @@ export default {
18
20
  },
19
21
  sortable: { control: 'boolean' },
20
22
  },
21
- tags: ['beta'],
23
+ tags: ['beta', 'vrt'],
24
+ beforeEach() {
25
+ setAutoSnapshotOptions({ enable: true });
26
+ },
27
+ async play({ canvasElement }) {
28
+ await waitForHydration(canvasElement);
29
+ },
22
30
  };
23
- export const TableHeaderCell = ({ type, label, icon, width, sortable }) => `
31
+ export const TableHeaderCell = ({ type, label, icon, width, sortable, }) => `
24
32
  <xpl-table-header-cell
25
33
  type=${type}
26
34
  label="${label}"
@@ -19,7 +19,9 @@ export class TableHeaderCell {
19
19
  this.sortChanged.emit(this.sortDirection);
20
20
  }
21
21
  render() {
22
- const colIndex = Array.from(this.el.parentElement.children).indexOf(this.el) + 1;
22
+ const colIndex = this.el.parentElement
23
+ ? Array.from(this.el.parentElement.children).indexOf(this.el) + 1
24
+ : 0;
23
25
  const renderContent = () => {
24
26
  switch (this.type) {
25
27
  case 'label':
@@ -27,7 +29,7 @@ export class TableHeaderCell {
27
29
  case 'checkbox':
28
30
  return h("xpl-checkbox", null);
29
31
  case 'icon':
30
- return h("xpl-icon", { icon: this.icon, size: 20 });
32
+ return this.icon ? h("xpl-icon", { icon: this.icon, size: 20 }) : null;
31
33
  default:
32
34
  return '';
33
35
  }
@@ -1,5 +1,14 @@
1
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
2
+ import { waitForHydration } from "../../../../.storybook/utils/wait-for-hydration";
1
3
  import { renderTabsStoryMarkup, segmentControlDefaultArgs, segmentControlStoryArgTypes, tabsPlainDomSegmentStoryHtml, } from "./tabs.shared";
2
4
  export default {
5
+ tags: ['vrt'],
6
+ beforeEach() {
7
+ setAutoSnapshotOptions({ enable: true });
8
+ },
9
+ async play({ canvasElement }) {
10
+ await waitForHydration(canvasElement);
11
+ },
3
12
  title: 'Components/Segment Control',
4
13
  component: 'xpl-tabs',
5
14
  parameters: {
@@ -14,7 +23,7 @@ export default {
14
23
  },
15
24
  argTypes: segmentControlStoryArgTypes,
16
25
  };
17
- export const SegmentControl = (args, context) => renderTabsStoryMarkup(args, context !== null && context !== void 0 ? context : {});
26
+ export const SegmentControl = (args, context) => renderTabsStoryMarkup(args, context ?? {});
18
27
  SegmentControl.args = segmentControlDefaultArgs;
19
28
  SegmentControl.parameters = {
20
29
  layout: 'padded',
@@ -8,7 +8,6 @@ export function clampTabCount(n) {
8
8
  return Math.min(200, Math.floor(n));
9
9
  }
10
10
  export function coerceTabsStoryValue(args) {
11
- var _a;
12
11
  const n = clampTabCount(args.tabCount);
13
12
  const targets = Array.from({ length: n }, (_, i) => `tab${i}`);
14
13
  const valueTrim = args.value.trim();
@@ -18,7 +17,7 @@ export function coerceTabsStoryValue(args) {
18
17
  if (targets.includes(valueTrim)) {
19
18
  return valueTrim;
20
19
  }
21
- return (_a = targets[0]) !== null && _a !== void 0 ? _a : '';
20
+ return targets[0] ?? '';
22
21
  }
23
22
  export function buildTabsMarkup(args) {
24
23
  const n = clampTabCount(args.tabCount);
@@ -43,14 +42,19 @@ export function buildTabsMarkup(args) {
43
42
  if (args.tabDisabled) {
44
43
  firstTabParts.push('disabled');
45
44
  }
46
- if (args.type === 'segment') {
47
- const icon = args.icon.trim();
48
- if (icon) {
49
- firstTabParts.push(`icon="${escapeHtmlAttr(icon)}"`);
50
- }
51
- if (args.iconPosition !== 'start') {
52
- firstTabParts.push(`icon-position="${args.iconPosition}"`);
53
- }
45
+ const icon = args.icon.trim();
46
+ if (icon) {
47
+ firstTabParts.push(`icon="${escapeHtmlAttr(icon)}"`);
48
+ }
49
+ if (args.iconPosition !== 'start') {
50
+ firstTabParts.push(`icon-position="${args.iconPosition}"`);
51
+ }
52
+ const badge = args.badge.trim();
53
+ if (badge) {
54
+ firstTabParts.push(`badge="${escapeHtmlAttr(badge)}"`);
55
+ }
56
+ if (badge && args.badgeVariant !== 'purple') {
57
+ firstTabParts.push(`badge-variant="${escapeHtmlAttr(args.badgeVariant)}"`);
54
58
  }
55
59
  const firstHeading = args.type === 'tabs' ? 'Tab' : 'Segment';
56
60
  lines.push(` <xpl-tab ${firstTabParts.join(' ')}>${firstHeading} 1</xpl-tab>`);
@@ -64,12 +68,11 @@ export function buildTabsMarkup(args) {
64
68
  return lines.join('\n');
65
69
  }
66
70
  export function renderTabsStoryMarkup(args, context = {}) {
67
- var _a;
68
71
  const value = coerceTabsStoryValue(args);
69
72
  if (value !== args.value) {
70
- (_a = context.updateArgs) === null || _a === void 0 ? void 0 : _a.call(context, { value });
73
+ context.updateArgs?.({ value });
71
74
  }
72
- return buildTabsMarkup(Object.assign(Object.assign({}, args), { value }));
75
+ return buildTabsMarkup({ ...args, value });
73
76
  }
74
77
  export const tabsPlainDomUnderlineStoryHtml = `<---- Non-interactive plain DOM (tabs.css BEM). Not the <xpl-tabs> API; use the Web Component tab for that. Ids mirror the scoped pattern (data-tabs-instance-id + target). ---->
75
78
  <div class="xpl-tabs" data-tabs-instance-id="xpl-tg-1">
@@ -77,10 +80,10 @@ export const tabsPlainDomUnderlineStoryHtml = `<---- Non-interactive plain DOM (
77
80
  <nav class="xpl-tabs__headings" role="tablist" aria-orientation="horizontal">
78
81
  <div class="xpl-tabs__active-bar"></div>
79
82
  <div class="xpl-tab xpl-tab--selected">
80
- <button class="xpl-tab__button" type="button" role="tab" id="xpl-tg-1-tab-tab0" aria-controls="xpl-tg-1-panel-tab0" aria-selected="true">Tab 1</button>
83
+ <button class="xpl-tab__button" type="button" role="tab" id="xpl-tg-1-tab-tab0" aria-controls="xpl-tg-1-panel-tab0" aria-selected="true"><xpl-icon class="xpl-tab__icon" icon="user" size="16"></xpl-icon>Tab 1<xpl-badge class="xpl-tab__badge" dot-only variant="purple">4</xpl-badge></button>
81
84
  </div>
82
85
  <div class="xpl-tab">
83
- <button class="xpl-tab__button" type="button" role="tab" id="xpl-tg-1-tab-tab1" aria-controls="xpl-tg-1-panel-tab1" aria-selected="false">Tab 2</button>
86
+ <button class="xpl-tab__button" type="button" role="tab" id="xpl-tg-1-tab-tab1" aria-controls="xpl-tg-1-panel-tab1" aria-selected="false"><xpl-icon class="xpl-tab__icon" icon="user" size="16"></xpl-icon>Tab 2<xpl-badge class="xpl-tab__badge" dot-only variant="purple">4</xpl-badge></button>
84
87
  </div>
85
88
  </nav>
86
89
  <div class="xpl-tabs__panels">
@@ -132,17 +135,65 @@ export const tabsStoryBaseArgTypes = {
132
135
  },
133
136
  icon: {
134
137
  control: { type: 'text' },
135
- description: 'First `xpl-tab` only — icon (segment). Empty = none.',
138
+ description: 'First `xpl-tab` only — leading icon name. Empty = none.',
136
139
  },
137
140
  iconPosition: {
138
141
  options: ['start', 'end'],
139
142
  control: { type: 'radio' },
140
143
  description: 'First `xpl-tab` only — icon position.',
141
144
  },
145
+ badge: {
146
+ control: { type: 'text' },
147
+ description: 'First `xpl-tab` only — trailing number badge value. Empty = none.',
148
+ },
149
+ badgeVariant: {
150
+ options: ['purple', 'green', 'yellow', 'orange', 'gray', 'red', 'blue'],
151
+ control: { type: 'select' },
152
+ description: 'First `xpl-tab` only — number badge color palette.',
153
+ },
142
154
  };
143
155
  const SEGMENT_CATEGORY_XPL_TABS = '01 — xpl-tabs';
144
156
  const SEGMENT_CATEGORY_FIRST_TAB = '02 — xpl-tab controls (first tab only for simplicity)';
145
- export const segmentControlStoryArgTypes = Object.assign(Object.assign({}, tabsStoryBaseArgTypes), { type: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.type), { table: { disable: true } }), disabled: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.disabled), { table: { category: SEGMENT_CATEGORY_XPL_TABS } }), fullWidth: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.fullWidth), { table: { category: SEGMENT_CATEGORY_XPL_TABS } }), value: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.value), { table: { category: SEGMENT_CATEGORY_XPL_TABS } }), tabCount: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.tabCount), { table: { category: SEGMENT_CATEGORY_XPL_TABS } }), tabDisabled: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.tabDisabled), { table: { category: SEGMENT_CATEGORY_FIRST_TAB } }), icon: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.icon), { table: { category: SEGMENT_CATEGORY_FIRST_TAB } }), iconPosition: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.iconPosition), { table: { category: SEGMENT_CATEGORY_FIRST_TAB } }) });
157
+ export const segmentControlStoryArgTypes = {
158
+ ...tabsStoryBaseArgTypes,
159
+ type: { ...tabsStoryBaseArgTypes.type, table: { disable: true } },
160
+ disabled: {
161
+ ...tabsStoryBaseArgTypes.disabled,
162
+ table: { category: SEGMENT_CATEGORY_XPL_TABS },
163
+ },
164
+ fullWidth: {
165
+ ...tabsStoryBaseArgTypes.fullWidth,
166
+ table: { category: SEGMENT_CATEGORY_XPL_TABS },
167
+ },
168
+ value: {
169
+ ...tabsStoryBaseArgTypes.value,
170
+ table: { category: SEGMENT_CATEGORY_XPL_TABS },
171
+ },
172
+ tabCount: {
173
+ ...tabsStoryBaseArgTypes.tabCount,
174
+ table: { category: SEGMENT_CATEGORY_XPL_TABS },
175
+ },
176
+ tabDisabled: {
177
+ ...tabsStoryBaseArgTypes.tabDisabled,
178
+ table: { category: SEGMENT_CATEGORY_FIRST_TAB },
179
+ },
180
+ icon: {
181
+ ...tabsStoryBaseArgTypes.icon,
182
+ table: { category: SEGMENT_CATEGORY_FIRST_TAB },
183
+ },
184
+ iconPosition: {
185
+ ...tabsStoryBaseArgTypes.iconPosition,
186
+ table: { category: SEGMENT_CATEGORY_FIRST_TAB },
187
+ },
188
+ badge: {
189
+ ...tabsStoryBaseArgTypes.badge,
190
+ table: { category: SEGMENT_CATEGORY_FIRST_TAB },
191
+ },
192
+ badgeVariant: {
193
+ ...tabsStoryBaseArgTypes.badgeVariant,
194
+ table: { category: SEGMENT_CATEGORY_FIRST_TAB },
195
+ },
196
+ };
146
197
  export const tabsUnderlineDefaultArgs = {
147
198
  type: 'tabs',
148
199
  disabled: false,
@@ -150,7 +201,14 @@ export const tabsUnderlineDefaultArgs = {
150
201
  value: 'tab0',
151
202
  tabCount: 2,
152
203
  tabDisabled: false,
153
- icon: '',
204
+ icon: 'user',
154
205
  iconPosition: 'start',
206
+ badge: '4',
207
+ badgeVariant: 'purple',
208
+ };
209
+ export const segmentControlDefaultArgs = {
210
+ ...tabsUnderlineDefaultArgs,
211
+ type: 'segment',
212
+ icon: 'house-4',
213
+ badge: '',
155
214
  };
156
- export const segmentControlDefaultArgs = Object.assign(Object.assign({}, tabsUnderlineDefaultArgs), { type: 'segment', icon: 'house-4' });
@@ -1,5 +1,14 @@
1
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
2
+ import { waitForHydration } from "../../../../.storybook/utils/wait-for-hydration";
1
3
  import { renderTabsStoryMarkup, tabsPlainDomUnderlineStoryHtml, tabsStoryBaseArgTypes, tabsUnderlineDefaultArgs, } from "./tabs.shared";
2
4
  export default {
5
+ tags: ['vrt'],
6
+ beforeEach() {
7
+ setAutoSnapshotOptions({ enable: true });
8
+ },
9
+ async play({ canvasElement }) {
10
+ await waitForHydration(canvasElement);
11
+ },
3
12
  title: 'Components/Tabs',
4
13
  component: 'xpl-tabs',
5
14
  parameters: {
@@ -12,9 +21,12 @@ export default {
12
21
  },
13
22
  },
14
23
  },
15
- argTypes: Object.assign(Object.assign({}, tabsStoryBaseArgTypes), { type: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.type), { table: { disable: true } }), icon: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.icon), { table: { disable: true } }), iconPosition: Object.assign(Object.assign({}, tabsStoryBaseArgTypes.iconPosition), { table: { disable: true } }) }),
24
+ argTypes: {
25
+ ...tabsStoryBaseArgTypes,
26
+ type: { ...tabsStoryBaseArgTypes.type, table: { disable: true } },
27
+ },
16
28
  };
17
- export const Tabs = (args, context) => renderTabsStoryMarkup(args, context !== null && context !== void 0 ? context : {});
29
+ export const Tabs = (args, context) => renderTabsStoryMarkup(args, context ?? {});
18
30
  Tabs.args = tabsUnderlineDefaultArgs;
19
31
  Tabs.parameters = {
20
32
  layout: 'padded',
@@ -1,14 +1,13 @@
1
1
  import { Host, h, } from "@stencil/core";
2
- const PILL_LABEL_ICON_SELECTORS = '.xpl-button__icon, xpl-icon';
2
+ const PILL_LABEL_ICON_SELECTORS = '.xpl-button__icon, xpl-icon, xpl-badge';
3
3
  let xplTabsInstanceCounter = 0;
4
4
  function tabHeadingLabelFromElement(tab) {
5
- var _a, _b;
6
5
  const pillInner = tab.querySelector('xpl-button button');
7
6
  if (pillInner) {
8
7
  const clone = pillInner.cloneNode(true);
9
8
  if (clone instanceof HTMLElement) {
10
9
  clone.querySelectorAll(PILL_LABEL_ICON_SELECTORS).forEach((node) => node.remove());
11
- const text = (_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.replace(/\s+/g, ' ').trim();
10
+ const text = clone.textContent?.replace(/\s+/g, ' ').trim();
12
11
  if (text) {
13
12
  return text;
14
13
  }
@@ -16,12 +15,17 @@ function tabHeadingLabelFromElement(tab) {
16
15
  }
17
16
  const underline = tab.querySelector('.xpl-tab__button');
18
17
  if (underline) {
19
- return Array.from(underline.childNodes)
18
+ const text = Array.from(underline.childNodes)
20
19
  .filter((node) => node.nodeType === Node.TEXT_NODE)
21
- .map((node) => { var _a; return ((_a = node.textContent) !== null && _a !== void 0 ? _a : '').trim(); })
22
- .join(' ');
20
+ .map((node) => (node.textContent ?? '').trim())
21
+ .join(' ')
22
+ .replace(/\s+/g, ' ')
23
+ .trim();
24
+ if (text) {
25
+ return text;
26
+ }
23
27
  }
24
- return (_b = tab.getAttribute('target')) !== null && _b !== void 0 ? _b : '';
28
+ return tab.getAttribute('target') ?? '';
25
29
  }
26
30
  export class Tabs {
27
31
  constructor() {
@@ -42,11 +46,10 @@ export class Tabs {
42
46
  this.applySelection(target);
43
47
  };
44
48
  this.onTablistKeydown = async (ev) => {
45
- var _a, _b;
46
49
  if (this.disabled) {
47
50
  return;
48
51
  }
49
- const tabHost = (_b = (_a = ev.target) === null || _a === void 0 ? void 0 : _a.closest) === null || _b === void 0 ? void 0 : _b.call(_a, 'xpl-tab');
52
+ const tabHost = ev.target?.closest?.('xpl-tab');
50
53
  if (!tabHost || !this.tabHeadings.includes(tabHost)) {
51
54
  return;
52
55
  }
@@ -98,7 +101,7 @@ export class Tabs {
98
101
  nextIndex = enabled.length - 1;
99
102
  }
100
103
  const nextTab = enabled[nextIndex];
101
- const nextValue = nextTab === null || nextTab === void 0 ? void 0 : nextTab.getAttribute('target');
104
+ const nextValue = nextTab?.getAttribute('target');
102
105
  if (!nextValue) {
103
106
  return;
104
107
  }
@@ -144,8 +147,7 @@ export class Tabs {
144
147
  });
145
148
  }
146
149
  disconnectedCallback() {
147
- var _a;
148
- (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
150
+ this.observer?.disconnect();
149
151
  if (this.headingsContainerRef && this.tablistKeydownBound) {
150
152
  this.headingsContainerRef.removeEventListener('keydown', this.onTablistKeydown);
151
153
  this.tablistKeydownBound = false;
@@ -238,16 +240,14 @@ export class Tabs {
238
240
  });
239
241
  }
240
242
  getDefaultValue() {
241
- var _a, _b;
242
- return this.value || ((_b = (_a = this.tabHeadings) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.getAttribute('target')) || '';
243
+ return this.value || this.tabHeadings?.[0]?.getAttribute('target') || '';
243
244
  }
244
245
  async syncRovingTabindex() {
245
246
  if (this.disabled) {
246
247
  return;
247
248
  }
248
249
  await Promise.all(this.tabHeadings.map(async (tabHeading) => {
249
- var _a;
250
- const target = (_a = tabHeading.getAttribute('target')) !== null && _a !== void 0 ? _a : '';
250
+ const target = tabHeading.getAttribute('target') ?? '';
251
251
  const isSelected = target === this.selectedValue;
252
252
  await tabHeading.setTabIndex(isSelected ? 0 : -1);
253
253
  }));
@@ -280,11 +280,15 @@ export class Tabs {
280
280
  }
281
281
  renderChoices() {
282
282
  return this.tabHeadings.map((tabHeading) => {
283
- var _a;
284
- const target = (_a = tabHeading.getAttribute('target')) !== null && _a !== void 0 ? _a : '';
283
+ const target = tabHeading.getAttribute('target') ?? '';
285
284
  const tabDisabled = this.disabled || tabHeading.hasAttribute('disabled');
286
- const icon = this.type === 'segment' ? tabHeading.getAttribute('icon') || undefined : undefined;
287
- return Object.assign({ label: tabHeadingLabelFromElement(tabHeading), value: target, isDisabled: tabDisabled }, (icon ? { icon } : {}));
285
+ const icon = tabHeading.getAttribute('icon') || undefined;
286
+ return {
287
+ label: tabHeadingLabelFromElement(tabHeading),
288
+ value: target,
289
+ isDisabled: tabDisabled,
290
+ ...(icon ? { icon } : {}),
291
+ };
288
292
  });
289
293
  }
290
294
  updateActiveBarPosition() {
@@ -317,11 +321,11 @@ export class Tabs {
317
321
  }
318
322
  render() {
319
323
  const isSegment = this.type === 'segment';
320
- return (h(Host, { key: 'a030a35038572d70f3fb2b979adbaa56d77a1d49', class: {
324
+ return (h(Host, { key: 'a863b42f5319f956e3cd698b52c93cec54279fa5', class: {
321
325
  'xpl-tabs': true,
322
326
  'xpl-tabs--full-width': this.fullWidth,
323
327
  'xpl-tabs--segment': isSegment,
324
- }, "data-choices-tick": this.choicesTick }, h("xpl-select", { key: '8260974c68020dea475f6e0780c766abfca94fda', classNames: this.mobileSelectClassNames(), choices: this.renderChoices(), disabled: this.disabled, selectedValues: this.selectedValue, onDropdownStateChange: (event) => {
328
+ }, "data-choices-tick": this.choicesTick }, h("xpl-select", { key: '4f8bf1edbb495e898576ca8024871d40a9df9073', classNames: this.mobileSelectClassNames(), choices: this.renderChoices(), disabled: this.disabled, selectedValues: this.selectedValue, onDropdownStateChange: (event) => {
325
329
  if (event.detail) {
326
330
  this.isMobileSelectChange = true;
327
331
  }
@@ -332,17 +336,17 @@ export class Tabs {
332
336
  this.tabChange.emit(selectedValue);
333
337
  this.isMobileSelectChange = false;
334
338
  }
335
- } }), h("nav", { key: '73a1e4ad4830b9b22b4eee00bad5793705cf3ac3', "aria-orientation": "horizontal", class: "xpl-tabs__headings", role: "tablist", ref: (el) => {
339
+ } }), h("nav", { key: 'c1e9234eb57af90d6aeff31be11ee3c6d758477f', "aria-orientation": "horizontal", class: "xpl-tabs__headings", role: "tablist", ref: (el) => {
336
340
  this.headingsContainerRef = el;
337
341
  }, onTabChange: (event) => {
338
342
  event.stopPropagation();
339
343
  this.isMobileSelectChange = false;
340
344
  this.handleTabChange(event.detail);
341
345
  this.tabChange.emit(event.detail);
342
- } }, !isSegment && (h("div", { key: '8008620a99470824fe61ea535fb46a3dea75afc3', class: "xpl-tabs__active-bar", style: {
346
+ } }, !isSegment && (h("div", { key: '86543a7b4edc639e4cf617953fa8f3cd4446895b', class: "xpl-tabs__active-bar", style: {
343
347
  transform: `translateX(${this.activeBarPosition.left}px)`,
344
348
  width: `${this.activeBarPosition.width}px`,
345
- } })), h("slot", { key: 'be53fe549e5b9c887ad90cbafcc8f95631361fee', name: "heading" })), h("div", { key: 'd97b138b5fcb0207684698752ec72c1dcd9464a3', class: "xpl-tabs__panels" }, h("slot", { key: 'fe40edbf2c9f20d02d75ab62a142e7df04ef0afd', name: "panel" }))));
349
+ } })), h("slot", { key: '0e651ef5fb2413200e40fa95016b546926f012a3', name: "heading" })), h("div", { key: 'd9bd0669b7618edf56f518fe797d86da51526018', class: "xpl-tabs__panels" }, h("slot", { key: '7c9f18ab1d25351c57b7750c7dd1a528a14c26bb', name: "panel" }))));
346
350
  }
347
351
  static get is() { return "xpl-tabs"; }
348
352
  static get properties() {