@xplortech/apollo-core 2.11.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 (720) hide show
  1. package/.typings/apollo-components.html-data.json +99 -10
  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 -13345
  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} +756 -9
  152. package/dist/cjs/index-DP4JWqOH.js +456 -0
  153. package/dist/cjs/{lifecycle-Bf3QwiVa.js → lifecycle-DeSsFfQZ.js} +4 -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} +1205 -10568
  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 +16 -22
  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 +3 -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.stories.js +35 -16
  343. package/dist/collection/components/xpl-top-nav/xpl-nav-header-menu/xpl-nav-header-menu.js +11 -5
  344. package/dist/collection/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.js +50 -32
  345. package/dist/collection/components/xpl-top-nav/xpl-top-nav-menu/xpl-top-nav-menu.js +13 -18
  346. package/dist/collection/components/xpl-top-nav/xpl-top-nav.js +96 -34
  347. package/dist/collection/components/xpl-utility-bar/utility-bar.stories.js +16 -9
  348. package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +1 -1
  349. package/dist/collection/utils/floating.js +69 -0
  350. package/dist/collection/utils/layout-ancestors.js +7 -0
  351. package/dist/collection/utils/lifecycle.js +13 -10
  352. package/dist/collection/utils/light-dom-slots.js +15 -0
  353. package/dist/collection/utils/slot-presence.js +6 -0
  354. package/dist/collection/utils/ssr-known-mismatches.js +50 -0
  355. package/dist/collection/utils/tab-a11y-ids.js +1 -2
  356. package/dist/components/index.d.ts +4 -0
  357. package/dist/components/index.js +1 -1
  358. package/dist/components/p-1M1pu0C2.js +1 -0
  359. package/dist/components/p-2jYZ7ACH.js +1 -0
  360. package/dist/components/p-BGqQbjLl.js +1 -0
  361. package/dist/components/p-BQtbf88X.js +1 -0
  362. package/dist/components/p-BSHdGbmH.js +1 -0
  363. package/dist/components/p-BnTsRbko.js +1 -0
  364. package/dist/components/p-Bseq_BgD.js +1 -0
  365. package/dist/components/p-CCgZCY_A.js +1 -0
  366. package/dist/components/p-CJzsLWeV.js +1 -0
  367. package/dist/components/p-CRKY79vL.js +1 -0
  368. package/dist/components/p-C_PEOQWj.js +1 -0
  369. package/dist/components/p-CjbPCnPP.js +1 -0
  370. package/dist/components/p-Cjxw-qOg.js +1 -0
  371. package/dist/components/p-D6JUVA1x.js +1 -0
  372. package/dist/components/p-DFGw0APN.js +1 -0
  373. package/dist/components/p-DLLQBDCb.js +1 -0
  374. package/dist/components/p-DS2Kv5fl.js +1 -0
  375. package/dist/components/p-DWUJ_jsx.js +1 -0
  376. package/dist/components/p-Di1NDy0w.js +1 -0
  377. package/dist/components/p-DkM7jyQB.js +1 -0
  378. package/dist/components/p-DkqlawVY.js +1 -0
  379. package/dist/components/p-Dqb1pIRo.js +1 -0
  380. package/dist/components/p-DsRsm61K.js +1 -0
  381. package/dist/components/p-DywQ3S73.js +1 -0
  382. package/dist/components/p-Dzp5p-eh.js +1 -0
  383. package/dist/components/p-Mehog36m.js +1 -0
  384. package/dist/components/p-RYnBuuDE.js +1 -0
  385. package/dist/components/p-_r9-FML8.js +1 -0
  386. package/dist/components/{p-ByJRw26d.js → p-imCMp2Nl.js} +1 -1
  387. package/dist/components/xpl-accordion.js +1 -1
  388. package/dist/components/xpl-application-shell.js +1 -1
  389. package/dist/components/xpl-avatar.js +1 -1
  390. package/dist/components/xpl-backdrop.js +1 -1
  391. package/dist/components/xpl-badge.js +1 -1
  392. package/dist/components/xpl-banner.js +1 -1
  393. package/dist/components/xpl-breadcrumb-item.js +1 -1
  394. package/dist/components/xpl-breadcrumbs.js +1 -1
  395. package/dist/components/xpl-button-row.js +1 -1
  396. package/dist/components/xpl-button.js +1 -1
  397. package/dist/components/xpl-calendar.js +1 -1
  398. package/dist/components/xpl-checkbox.js +1 -1
  399. package/dist/components/xpl-choicelist.js +1 -1
  400. package/dist/components/xpl-content-area.js +1 -1
  401. package/dist/components/xpl-dashboard.js +1 -1
  402. package/dist/components/xpl-data-card.js +1 -1
  403. package/dist/components/xpl-divider.js +1 -1
  404. package/dist/components/xpl-dropdown-group.js +1 -1
  405. package/dist/components/xpl-dropdown-heading.js +1 -1
  406. package/dist/components/xpl-dropdown-option.js +1 -1
  407. package/dist/components/xpl-dropdown.js +1 -1
  408. package/dist/components/xpl-dynamic-table-cell.js +1 -1
  409. package/dist/components/xpl-dynamic-table-row.js +1 -1
  410. package/dist/components/xpl-dynamic-table.js +1 -1
  411. package/dist/components/xpl-grid-item.js +1 -1
  412. package/dist/components/xpl-grid.js +1 -1
  413. package/dist/components/xpl-header-accordion.js +1 -1
  414. package/dist/components/xpl-icon.js +1 -1
  415. package/dist/components/xpl-input-color.js +1 -1
  416. package/dist/components/xpl-input-date.js +1 -1
  417. package/dist/components/xpl-input-file.js +1 -1
  418. package/dist/components/xpl-input-phone.js +1 -1
  419. package/dist/components/xpl-input-search.js +1 -1
  420. package/dist/components/xpl-input-time.js +1 -1
  421. package/dist/components/xpl-input.js +1 -1
  422. package/dist/components/xpl-large-card.js +1 -1
  423. package/dist/components/xpl-list-item.js +1 -1
  424. package/dist/components/xpl-list.js +1 -1
  425. package/dist/components/xpl-main-nav.js +1 -1
  426. package/dist/components/xpl-modal.js +1 -1
  427. package/dist/components/xpl-nav-header-menu.js +1 -1
  428. package/dist/components/xpl-nav-item.js +1 -1
  429. package/dist/components/xpl-pagination.js +1 -1
  430. package/dist/components/xpl-panel.js +1 -1
  431. package/dist/components/xpl-popover.js +1 -1
  432. package/dist/components/xpl-progress-bar.js +1 -1
  433. package/dist/components/xpl-progress-indicator.js +1 -1
  434. package/dist/components/xpl-radio.js +1 -1
  435. package/dist/components/xpl-secondary-nav.js +1 -1
  436. package/dist/components/xpl-select.js +1 -1
  437. package/dist/components/xpl-side-nav-header-item.d.ts +11 -0
  438. package/dist/components/xpl-side-nav-header-item.js +1 -0
  439. package/dist/components/xpl-side-nav-item.js +1 -1
  440. package/dist/components/xpl-side-nav-section.d.ts +11 -0
  441. package/dist/components/xpl-side-nav-section.js +1 -0
  442. package/dist/components/xpl-side-nav.js +1 -1
  443. package/dist/components/xpl-skeleton.js +1 -1
  444. package/dist/components/xpl-slideout.js +1 -1
  445. package/dist/components/xpl-spotlight.js +1 -1
  446. package/dist/components/xpl-tab-panel.js +1 -1
  447. package/dist/components/xpl-tab.js +1 -1
  448. package/dist/components/xpl-table-header-cell.js +1 -1
  449. package/dist/components/xpl-table-header.js +1 -1
  450. package/dist/components/xpl-table.js +1 -1
  451. package/dist/components/xpl-tabs.js +1 -1
  452. package/dist/components/xpl-tag.js +1 -1
  453. package/dist/components/xpl-toast.js +1 -1
  454. package/dist/components/xpl-toggle.js +1 -1
  455. package/dist/components/xpl-toolbar.js +1 -1
  456. package/dist/components/xpl-tooltip.js +1 -1
  457. package/dist/components/xpl-top-nav-item.js +1 -1
  458. package/dist/components/xpl-top-nav-menu.js +1 -1
  459. package/dist/components/xpl-top-nav.js +1 -1
  460. package/dist/components/xpl-utility-bar.js +1 -1
  461. package/dist/css/typography.stories.js +9 -0
  462. package/dist/docs/xpl-application-shell/readme.md +33 -0
  463. package/dist/docs/xpl-backdrop/readme.md +7 -0
  464. package/dist/docs/xpl-badge/readme.md +2 -0
  465. package/dist/docs/xpl-breadcrumbs/xpl-breadcrumbs/readme.md +9 -0
  466. package/dist/docs/xpl-button/readme.md +4 -2
  467. package/dist/docs/xpl-checkbox/readme.md +12 -0
  468. package/dist/docs/xpl-choicelist/readme.md +21 -0
  469. package/dist/docs/xpl-content-area/readme.md +8 -0
  470. package/dist/docs/xpl-data-card/readme.md +26 -0
  471. package/dist/docs/xpl-dropdown/readme.md +32 -6
  472. package/dist/docs/xpl-dynamic-table/readme.md +35 -0
  473. package/dist/docs/xpl-header-accordion/readme.md +18 -0
  474. package/dist/docs/xpl-icon/readme.md +21 -0
  475. package/dist/docs/xpl-input/xpl-input-color/readme.md +18 -0
  476. package/dist/docs/xpl-input/xpl-input-file/readme.md +13 -0
  477. package/dist/docs/xpl-input/xpl-input-time/readme.md +9 -0
  478. package/dist/docs/xpl-large-card/readme.md +18 -0
  479. package/dist/docs/xpl-list/readme.md +2 -2
  480. package/dist/docs/xpl-list/xpl-list-item/readme.md +3 -3
  481. package/dist/docs/xpl-main-nav/readme.md +16 -0
  482. package/dist/docs/xpl-modal/readme.md +20 -0
  483. package/dist/docs/xpl-nav-item/readme.md +14 -0
  484. package/dist/docs/xpl-pagination/readme.md +29 -0
  485. package/dist/docs/xpl-radio/readme.md +12 -0
  486. package/dist/docs/xpl-secondary-nav/readme.md +25 -0
  487. package/dist/docs/xpl-select/readme.md +13 -0
  488. package/dist/docs/xpl-side-nav/readme.md +12 -7
  489. package/dist/docs/xpl-side-nav/xpl-side-nav-header-item/readme.md +155 -0
  490. package/dist/docs/xpl-side-nav/xpl-side-nav-item/readme.md +16 -6
  491. package/dist/docs/xpl-side-nav/xpl-side-nav-section/readme.md +126 -0
  492. package/dist/docs/xpl-slideout/readme.md +23 -0
  493. package/dist/docs/xpl-tab/readme.md +14 -8
  494. package/dist/docs/xpl-table/readme.md +4 -4
  495. package/dist/docs/xpl-toast/readme.md +90 -7
  496. package/dist/docs/xpl-toggle/readme.md +46 -0
  497. package/dist/docs/xpl-toolbar/readme.md +19 -0
  498. package/dist/docs/xpl-top-nav/readme.md +2 -1
  499. package/dist/docs/xpl-top-nav/xpl-top-nav-item/readme.md +5 -5
  500. package/dist/docs/xpl-utility-bar/readme.md +12 -0
  501. package/dist/docs.d.ts +480 -0
  502. package/dist/docs.json +16441 -0
  503. package/dist/esm/_commonjsHelpers-BFTU3MAI.js +7 -0
  504. package/dist/esm/apollo-core.js +3 -3
  505. package/dist/esm/floating-ui.dom-1M1pu0C2.js +1702 -0
  506. package/dist/esm/index-BhYfWG18.js +454 -0
  507. package/dist/esm/{index-CXkZUm1c.js → index-ukZKsqqq.js} +756 -9
  508. package/dist/esm/{lifecycle-BUgtURvw.js → lifecycle-Dqb1pIRo.js} +4 -1
  509. package/dist/esm/light-dom-slots-DkqlawVY.js +17 -0
  510. package/dist/esm/loader.js +3 -3
  511. package/dist/esm/side-nav-slot-utils-C_PEOQWj.js +37 -0
  512. package/dist/esm/slot-presence-_r9-FML8.js +8 -0
  513. package/dist/esm/tab-a11y-ids-BQtbf88X.js +23 -0
  514. package/dist/esm/top-nav-constants-CWdQxaaX.js +3 -0
  515. package/dist/esm/xpl-accordion.entry.js +5 -3
  516. package/dist/esm/xpl-application-shell.entry.js +2 -2
  517. package/dist/esm/xpl-avatar_3.entry.js +206 -0
  518. package/dist/esm/xpl-backdrop.entry.js +17 -0
  519. package/dist/esm/xpl-badge.entry.js +35 -0
  520. package/dist/esm/xpl-banner.entry.js +72 -0
  521. package/dist/esm/xpl-breadcrumb-item.entry.js +16 -0
  522. package/dist/esm/xpl-breadcrumbs.entry.js +12 -0
  523. package/dist/esm/xpl-button-row.entry.js +2 -2
  524. package/dist/esm/xpl-button.entry.js +79 -0
  525. package/dist/esm/xpl-calendar.entry.js +10 -6
  526. package/dist/esm/xpl-checkbox.entry.js +30 -0
  527. package/dist/esm/xpl-choicelist.entry.js +66 -0
  528. package/dist/esm/xpl-content-area.entry.js +13 -0
  529. package/dist/esm/xpl-dashboard.entry.js +12 -0
  530. package/dist/esm/xpl-data-card.entry.js +109 -0
  531. package/dist/esm/xpl-dropdown_4.entry.js +572 -0
  532. package/dist/esm/xpl-dynamic-table-cell.entry.js +8 -6
  533. package/dist/esm/xpl-dynamic-table-row.entry.js +5 -5
  534. package/dist/esm/xpl-dynamic-table.entry.js +11 -18
  535. package/dist/esm/xpl-grid-item.entry.js +2 -2
  536. package/dist/esm/xpl-grid.entry.js +6 -6
  537. package/dist/esm/xpl-header-accordion.entry.js +67 -0
  538. package/dist/{cjs/xpl-avatar_54.cjs.entry.js → esm/xpl-icon.entry.js} +1202 -10622
  539. package/dist/esm/xpl-input-color.entry.js +433 -0
  540. package/dist/esm/xpl-input-phone.entry.js +507 -0
  541. package/dist/esm/xpl-input-time.entry.js +194 -0
  542. package/dist/esm/xpl-input_4.entry.js +519 -0
  543. package/dist/esm/xpl-large-card.entry.js +63 -4
  544. package/dist/esm/xpl-list-item.entry.js +458 -0
  545. package/dist/esm/xpl-list.entry.js +394 -0
  546. package/dist/esm/xpl-main-nav.entry.js +2 -2
  547. package/dist/esm/xpl-modal.entry.js +76 -0
  548. package/dist/esm/xpl-nav-header-menu.entry.js +84 -0
  549. package/dist/esm/xpl-nav-item.entry.js +23 -0
  550. package/dist/esm/xpl-pagination.entry.js +110 -0
  551. package/dist/esm/xpl-panel.entry.js +19 -0
  552. package/dist/esm/xpl-popover.entry.js +263 -0
  553. package/dist/esm/xpl-progress-bar.entry.js +39 -0
  554. package/dist/esm/xpl-progress-indicator.entry.js +72 -0
  555. package/dist/esm/xpl-secondary-nav.entry.js +12 -0
  556. package/dist/esm/xpl-select_2.entry.js +490 -0
  557. package/dist/esm/xpl-side-nav-header-item.entry.js +99 -0
  558. package/dist/esm/xpl-side-nav-item.entry.js +128 -0
  559. package/dist/esm/xpl-side-nav-section.entry.js +103 -0
  560. package/dist/esm/xpl-side-nav.entry.js +270 -0
  561. package/dist/esm/xpl-skeleton.entry.js +24 -0
  562. package/dist/esm/xpl-slideout.entry.js +45 -0
  563. package/dist/esm/xpl-spotlight.entry.js +720 -0
  564. package/dist/esm/xpl-tab-panel.entry.js +22 -0
  565. package/dist/esm/xpl-tab.entry.js +85 -0
  566. package/dist/esm/xpl-table-header-cell.entry.js +5 -3
  567. package/dist/esm/xpl-table-header.entry.js +2 -2
  568. package/dist/esm/xpl-table.entry.js +183 -0
  569. package/dist/esm/xpl-tabs.entry.js +371 -0
  570. package/dist/esm/xpl-toast.entry.js +89 -0
  571. package/dist/esm/xpl-toggle.entry.js +6 -6
  572. package/dist/esm/xpl-toolbar.entry.js +3 -3
  573. package/dist/esm/xpl-tooltip.entry.js +16 -0
  574. package/dist/esm/xpl-top-nav-item.entry.js +433 -0
  575. package/dist/esm/xpl-top-nav-menu.entry.js +15 -21
  576. package/dist/esm/xpl-top-nav.entry.js +340 -0
  577. package/dist/esm/xpl-utility-bar.entry.js +21 -0
  578. package/dist/types/components/xpl-accordion/accordion.stories.d.ts +11 -2
  579. package/dist/types/components/xpl-application-shell/application-shell.stories.d.ts +5 -23
  580. package/dist/types/components/xpl-application-shell/xpl-application-shell.d.ts +1 -1
  581. package/dist/types/components/xpl-avatar/avatar.stories.d.ts +17 -116
  582. package/dist/types/components/xpl-backdrop/backdrop.stories.d.ts +2 -0
  583. package/dist/types/components/xpl-badge/badge.stories.d.ts +7 -0
  584. package/dist/types/components/xpl-breadcrumbs/breadcrumbs.stories.d.ts +10 -27
  585. package/dist/types/components/xpl-button/button.stories.d.ts +4 -0
  586. package/dist/types/components/xpl-button-row/button-row.stories.d.ts +10 -21
  587. package/dist/types/components/xpl-calendar/calendar.stories.d.ts +11 -28
  588. package/dist/types/components/xpl-checkbox/checkbox.stories.d.ts +13 -31
  589. package/dist/types/components/xpl-choicelist/choicelist.stories.d.ts +9 -23
  590. package/dist/types/components/xpl-content-area/content-area.stories.d.ts +7 -1
  591. package/dist/types/components/xpl-dashboard/dashboard.stories.d.ts +8 -17
  592. package/dist/types/components/xpl-data-card/data-card.stories.d.ts +32 -37
  593. package/dist/types/components/xpl-data-card/xpl-data-card.d.ts +12 -0
  594. package/dist/types/components/xpl-divider/divider.stories.d.ts +10 -23
  595. package/dist/types/components/xpl-dropdown/dropdown.stories.d.ts +160 -8
  596. package/dist/types/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.d.ts +1 -1
  597. package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +7 -9
  598. package/dist/types/components/xpl-dynamic-table/dynamic-table.stories.d.ts +7 -22
  599. package/dist/types/components/xpl-dynamic-table/xpl-dynamic-table.d.ts +2 -1
  600. package/dist/types/components/xpl-grid/grid.stories.d.ts +23 -47
  601. package/dist/types/components/xpl-header-accordion/header-accordion.stories.d.ts +8 -24
  602. package/dist/types/components/xpl-header-accordion/xpl-header-accordion.d.ts +0 -2
  603. package/dist/types/components/xpl-icon/icons.stories.d.ts +16 -39
  604. package/dist/types/components/xpl-input/input.stories.d.ts +255 -54
  605. package/dist/types/components/xpl-input/xpl-input-date/xpl-input-date.d.ts +1 -1
  606. package/dist/types/components/xpl-input/xpl-input-file/xpl-input-file.d.ts +1 -1
  607. package/dist/types/components/xpl-input/xpl-input-phone/xpl-input-phone.d.ts +2 -2
  608. package/dist/types/components/xpl-input/xpl-input-time/time-utils.d.ts +1 -1
  609. package/dist/types/components/xpl-input/xpl-input-time/xpl-input-time.d.ts +1 -1
  610. package/dist/types/components/xpl-input/xpl-input.d.ts +11 -6
  611. package/dist/types/components/xpl-large-card/large-card.stories.d.ts +12 -30
  612. package/dist/types/components/xpl-large-card/xpl-large-card.d.ts +12 -0
  613. package/dist/types/components/xpl-list/list.stories.d.ts +33 -1
  614. package/dist/types/components/xpl-list/listitem.d.ts +5 -0
  615. package/dist/types/components/xpl-list/xpl-list-item/xpl-list-item.d.ts +0 -1
  616. package/dist/types/components/xpl-main-nav/main-nav.stories.d.ts +7 -1
  617. package/dist/types/components/xpl-modal/modal.stories.d.ts +16 -16
  618. package/dist/types/components/xpl-modal/xpl-modal.d.ts +3 -1
  619. package/dist/types/components/xpl-pagination/pagination.stories.d.ts +9 -30
  620. package/dist/types/components/xpl-panel/panel.stories.d.ts +9 -1
  621. package/dist/types/components/xpl-popover/popover.stories.d.ts +12 -3
  622. package/dist/types/components/xpl-popover/xpl-popover.d.ts +4 -2
  623. package/dist/types/components/xpl-progress-bar/progress-bar.stories.d.ts +13 -24
  624. package/dist/types/components/xpl-progress-indicator/progress-indicator.stories.d.ts +2 -0
  625. package/dist/types/components/xpl-radio/radio.stories.d.ts +3 -0
  626. package/dist/types/components/xpl-secondary-nav/secondary-nav.stories.d.ts +4 -1
  627. package/dist/types/components/xpl-select/select.stories.d.ts +35 -45
  628. package/dist/types/components/xpl-select/xpl-select.d.ts +1 -0
  629. package/dist/types/components/xpl-side-nav/side-nav-slot-utils.d.ts +3 -0
  630. package/dist/types/components/xpl-side-nav/side-nav.stories.d.ts +73 -1
  631. package/dist/types/components/xpl-side-nav/xpl-side-nav-header-item/xpl-side-nav-header-item.d.ts +24 -0
  632. package/dist/types/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.d.ts +1 -1
  633. package/dist/types/components/xpl-side-nav/xpl-side-nav-section/xpl-side-nav-section.d.ts +24 -0
  634. package/dist/types/components/xpl-side-nav/xpl-side-nav.d.ts +10 -0
  635. package/dist/types/components/xpl-skeleton/skeleton.stories.d.ts +11 -1
  636. package/dist/types/components/xpl-slideout/slideout.stories.d.ts +20 -16
  637. package/dist/types/components/xpl-spotlight/spotlight.stories.d.ts +7 -1
  638. package/dist/types/components/xpl-spotlight/xpl-spotlight.d.ts +1 -0
  639. package/dist/types/components/xpl-tab/xpl-tab.d.ts +5 -0
  640. package/dist/types/components/xpl-table/table.stories.d.ts +16 -37
  641. package/dist/types/components/xpl-table/xpl-table.d.ts +8 -8
  642. package/dist/types/components/xpl-table-header/table-header.stories.d.ts +21 -48
  643. package/dist/types/components/xpl-table-header-cell/table-header-cell.stories.d.ts +11 -34
  644. package/dist/types/components/xpl-tabs/segment-control.stories.d.ts +22 -0
  645. package/dist/types/components/xpl-tabs/tabs.shared.d.ts +35 -1
  646. package/dist/types/components/xpl-tabs/tabs.stories.d.ts +29 -19
  647. package/dist/types/components/xpl-tag/tag.stories.d.ts +3 -0
  648. package/dist/types/components/xpl-toast/toast.stories.d.ts +17 -13
  649. package/dist/types/components/xpl-toast/xpl-toast.d.ts +13 -4
  650. package/dist/types/components/xpl-toggle/toggle.stories.d.ts +13 -31
  651. package/dist/types/components/xpl-toolbar/toolbar.stories.d.ts +35 -0
  652. package/dist/types/components/xpl-tooltip/tooltip.stories.d.ts +10 -24
  653. package/dist/types/components/xpl-top-nav/top-nav.stories.d.ts +9 -0
  654. package/dist/types/components/xpl-top-nav/xpl-top-nav-item/xpl-top-nav-item.d.ts +3 -0
  655. package/dist/types/components/xpl-top-nav/xpl-top-nav.d.ts +7 -2
  656. package/dist/types/components/xpl-utility-bar/utility-bar.stories.d.ts +9 -2
  657. package/dist/types/components.d.ts +1006 -46
  658. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/.storybook/utils/story-function.d.ts +11 -0
  659. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/.storybook/utils/wait-for-hydration.d.ts +1 -0
  660. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/css/typography.stories.d.ts +76 -0
  661. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/utils/form-bindings.d.ts +4 -0
  662. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/src/utils/story-vrt.d.ts +1 -0
  663. package/dist/types/third-party.d.ts +20 -0
  664. package/dist/types/utils/floating.d.ts +26 -0
  665. package/dist/types/utils/lifecycle.d.ts +1 -1
  666. package/dist/types/utils/light-dom-slots.d.ts +6 -0
  667. package/dist/types/utils/slot-presence.d.ts +1 -0
  668. package/dist/types/utils/ssr-known-mismatches.d.ts +16 -0
  669. package/dist/utils/form-bindings.js +64 -0
  670. package/dist/utils/story-vrt.js +48 -0
  671. package/hydrate/index.d.ts +287 -0
  672. package/hydrate/index.js +51669 -0
  673. package/hydrate/index.mjs +51659 -0
  674. package/hydrate/package.json +12 -0
  675. package/package.json +99 -42
  676. package/dist/apollo-core/p-048fdde0.entry.js +0 -1
  677. package/dist/apollo-core/p-0abc496e.entry.js +0 -1
  678. package/dist/apollo-core/p-1442c052.entry.js +0 -1
  679. package/dist/apollo-core/p-1e498763.entry.js +0 -1
  680. package/dist/apollo-core/p-26c3a508.entry.js +0 -1
  681. package/dist/apollo-core/p-3b8639b7.entry.js +0 -1
  682. package/dist/apollo-core/p-4ce52107.entry.js +0 -1
  683. package/dist/apollo-core/p-6710fb29.entry.js +0 -1
  684. package/dist/apollo-core/p-7e622809.entry.js +0 -1
  685. package/dist/apollo-core/p-87068144.entry.js +0 -1
  686. package/dist/apollo-core/p-BUgtURvw.js +0 -1
  687. package/dist/apollo-core/p-CXkZUm1c.js +0 -2
  688. package/dist/apollo-core/p-a3b4820a.entry.js +0 -1
  689. package/dist/apollo-core/p-b2d6dd0e.entry.js +0 -1
  690. package/dist/apollo-core/p-bd2249ef.entry.js +0 -1
  691. package/dist/apollo-core/p-c96b7957.entry.js +0 -1
  692. package/dist/apollo-core/p-d6be63cd.entry.js +0 -1
  693. package/dist/apollo-core/p-ddf76cee.entry.js +0 -1
  694. package/dist/apollo-core/p-f0554edd.entry.js +0 -1
  695. package/dist/components/p-2xGSxBGa.js +0 -1
  696. package/dist/components/p-B8RYNiz-.js +0 -1
  697. package/dist/components/p-BDWXBWGE.js +0 -1
  698. package/dist/components/p-BJqNuBZr.js +0 -1
  699. package/dist/components/p-BT_Lq3Vd.js +0 -1
  700. package/dist/components/p-BUgtURvw.js +0 -1
  701. package/dist/components/p-B_sq_SAX.js +0 -1
  702. package/dist/components/p-Bsy-VVS5.js +0 -1
  703. package/dist/components/p-BxHFEnPN.js +0 -1
  704. package/dist/components/p-C5_Yo0ZP.js +0 -1
  705. package/dist/components/p-C8rmEAx6.js +0 -1
  706. package/dist/components/p-CF_YTx16.js +0 -1
  707. package/dist/components/p-CFpsSZyr.js +0 -1
  708. package/dist/components/p-CUYkG-PB.js +0 -1
  709. package/dist/components/p-CaW0fL0P.js +0 -1
  710. package/dist/components/p-CuisR8WP.js +0 -1
  711. package/dist/components/p-D2SFagIb.js +0 -1
  712. package/dist/components/p-DKUNbsb0.js +0 -1
  713. package/dist/components/p-DcXL24UI.js +0 -1
  714. package/dist/components/p-Dp3H99Yc.js +0 -1
  715. package/dist/components/p-M900WO1C.js +0 -1
  716. package/dist/components/p-Yj_QFaRn.js +0 -1
  717. package/dist/components/p-ZTFt9sBy.js +0 -1
  718. package/dist/components/p-gfb3l9Pr.js +0 -1
  719. package/dist/components/p-h1Gbk5lO.js +0 -1
  720. package/dist/types/home/runner/work/apollo/apollo/packages/apollo-core/.stencil/css/typography.stories.d.ts +0 -90
@@ -11,16 +11,16 @@ export class InputTime {
11
11
  this.showOptions = false;
12
12
  this.options = [];
13
13
  this.handleInput = (ev) => {
14
- var _a;
15
14
  const target = ev.target;
16
- const allowedChars = (_a = target.value) === null || _a === void 0 ? void 0 : _a.replace(/[^0-9:apmAPM]/g, '');
15
+ const allowedChars = target.value?.replace(/[^0-9:apmAPM]/g, '');
17
16
  this.value = allowedChars;
18
17
  };
19
18
  this.handleFocus = () => {
20
19
  this.showOptions = true;
21
20
  };
22
21
  this.handleBlur = () => {
23
- this.value = normalizeTime(this.value);
22
+ const normalized = normalizeTime(this.value ?? '');
23
+ this.value = normalized ?? undefined;
24
24
  };
25
25
  this.handleClick = () => {
26
26
  this.showOptions = true;
@@ -63,7 +63,9 @@ export class InputTime {
63
63
  this.hasErrorState = 'Invalid time format, must be HH:MM';
64
64
  return;
65
65
  }
66
- if (this.value < this.min || this.value > this.max) {
66
+ const min = String(this.min ?? '00:00');
67
+ const max = String(this.max ?? '23:59');
68
+ if (this.value < min || this.value > max) {
67
69
  this.hasErrorState = 'Out of range';
68
70
  return;
69
71
  }
@@ -79,11 +81,10 @@ export class InputTime {
79
81
  this.hasErrorStateChanged.emit(newValue);
80
82
  }
81
83
  componentDidLoad() {
82
- var _a;
83
84
  if (this.mode === 'range') {
84
85
  console.warn('Range mode is not supported for time inputs at this time.');
85
86
  }
86
- (_a = this.dropdown) === null || _a === void 0 ? void 0 : _a.addEventListener('isOpenChange', (e) => {
87
+ this.dropdown?.addEventListener('isOpenChange', (e) => {
87
88
  this.showOptions = e.detail;
88
89
  });
89
90
  }
@@ -95,7 +96,7 @@ export class InputTime {
95
96
  this.updateState(this.value);
96
97
  }
97
98
  getOptions() {
98
- return generateTimeOptions(this.step, this.min.toString(), this.max.toString(), this.timeFormat).map(({ label, value }) => ({
99
+ return generateTimeOptions(this.step, String(this.min ?? '00:00'), String(this.max ?? '23:59'), this.timeFormat ?? '24h').map(({ label, value }) => ({
99
100
  label,
100
101
  value,
101
102
  onClick: () => {
@@ -105,12 +106,12 @@ export class InputTime {
105
106
  }));
106
107
  }
107
108
  render() {
108
- return (h(Host, { key: 'aef2e65955381ed89dd800e889bd20469a201172', class: {
109
+ return (h(Host, { key: '61190dc5c00042aa095367bcce600a4d759bdbca', class: {
109
110
  'xpl-input-time': true,
110
111
  [`xpl-input-time--mode-${this.mode}`]: true,
111
112
  'xpl-input-time--error': !!this.hasErrorState,
112
- } }, h("xpl-input", { key: '90f85f631d876714e65134e964ec521bce1d7948', pre: h("xpl-icon", { class: "xpl-input-time__clock-icon", icon: "clock", size: 24 }), post: this.timeFormat === '12h' ? this.amPm || 'AM' : null, type: "text", _id: this.inputId, disabled: this.disabled, name: this.name, required: this.required, readonly: this.readonly, placeholder: this.placeholder, max: this.max, min: this.min, onInput: this.handleInput, value: this.formattedValue, onFocusEvent: this.handleFocus, onBlurEvent: this.handleBlur, onClick: this.handleClick }), !this.readonly && !this.disabled && (h("xpl-dropdown", { key: 'f42c653946921b15cb0c1b24db01d299c22406c1', options: this.options, isOpen: this.showOptions, ref: (el) => {
113
- this.dropdown = el;
113
+ } }, h("xpl-input", { key: '8793e06e961f53794df33d0015280930a43d1a90', pre: h("xpl-icon", { class: "xpl-input-time__clock-icon", icon: "clock", size: 24 }), post: this.timeFormat === '12h' ? this.amPm || 'AM' : undefined, type: "text", _id: this.inputId, disabled: this.disabled, name: this.name, required: this.required, readonly: this.readonly, placeholder: this.placeholder, max: this.max, min: this.min, onInput: this.handleInput, value: this.formattedValue, onFocusEvent: this.handleFocus, onBlurEvent: this.handleBlur, onClick: this.handleClick }), !this.readonly && !this.disabled && (h("xpl-dropdown", { key: '7c88be365f26e1eecb6c731acb9d1c87d96973dd', options: this.options, isOpen: this.showOptions, ref: (el) => {
114
+ this.dropdown = el ?? undefined;
114
115
  }, class: "xpl-input-time__dropdown" }))));
115
116
  }
116
117
  static get is() { return "xpl-input-time"; }
@@ -40,12 +40,6 @@ export class Input {
40
40
  const { value } = ev.target;
41
41
  this.inputEvent.emit(value);
42
42
  };
43
- this.syncPreSlotContent = () => {
44
- const hasSlotted = this.hasDirectPreSlotChild();
45
- if (hasSlotted !== this.hasPreSlotContent) {
46
- this.hasPreSlotContent = hasSlotted;
47
- }
48
- };
49
43
  this.handleSearchBlurForward = (event) => {
50
44
  const { detail } = event;
51
45
  if (!detail) {
@@ -67,11 +61,16 @@ export class Input {
67
61
  this.focusEvent.emit(detail);
68
62
  };
69
63
  }
70
- hasDirectPreSlotChild() {
71
- return Array.from(this.el.children).some((child) => child.getAttribute('slot') === 'pre');
64
+ connectedCallback() {
65
+ this.syncPreSlotContent();
66
+ this.connectPreSlotObserver();
72
67
  }
73
- updateCharacterCount() {
74
- this.characterCount = this.input.value.length;
68
+ disconnectedCallback() {
69
+ if (this.preSlotSyncTimeoutId !== undefined) {
70
+ clearTimeout(this.preSlotSyncTimeoutId);
71
+ this.preSlotSyncTimeoutId = undefined;
72
+ }
73
+ this.disconnectPreSlotObserver();
75
74
  }
76
75
  componentWillLoad() {
77
76
  if (this._id === undefined || this._id === null || this._id === '')
@@ -79,32 +78,66 @@ export class Input {
79
78
  if (this.multiline && this.maxCharacterCount !== undefined) {
80
79
  this.characterCount = this.value !== undefined ? this.value.length : 0;
81
80
  }
82
- if (!this.multiline) {
83
- this.hasPreSlotContent = this.hasDirectPreSlotChild();
81
+ this.syncPreSlotContent();
82
+ }
83
+ componentWillRender() {
84
+ this.disconnectPreSlotObserver();
85
+ }
86
+ componentDidRender() {
87
+ this.schedulePreSlotSync();
88
+ }
89
+ async setFocus() {
90
+ if (this.type === 'search') {
91
+ await this.searchInputRef?.setFocus();
92
+ return;
84
93
  }
94
+ this.input?.focus();
85
95
  }
86
- componentDidLoad() {
87
- if (this.multiline || this.type === 'search')
96
+ connectPreSlotObserver() {
97
+ this.disconnectPreSlotObserver();
98
+ if (this.multiline || this.type === 'search' || typeof MutationObserver === 'undefined') {
88
99
  return;
89
- if (typeof MutationObserver !== 'undefined') {
90
- this.preSlotObserver = new MutationObserver(this.syncPreSlotContent);
91
- this.preSlotObserver.observe(this.el, { childList: true });
92
100
  }
101
+ this.preSlotObserver = new MutationObserver(() => {
102
+ this.schedulePreSlotSync();
103
+ });
104
+ this.preSlotObserver.observe(this.el, {
105
+ childList: true,
106
+ subtree: true,
107
+ attributes: true,
108
+ attributeFilter: ['slot'],
109
+ });
93
110
  }
94
- disconnectedCallback() {
95
- var _a;
96
- (_a = this.preSlotObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
111
+ disconnectPreSlotObserver() {
112
+ this.preSlotObserver?.disconnect();
113
+ this.preSlotObserver = undefined;
97
114
  }
98
- async setFocus() {
99
- var _a, _b;
100
- if (this.type === 'search') {
101
- await ((_a = this.searchInputRef) === null || _a === void 0 ? void 0 : _a.setFocus());
115
+ schedulePreSlotSync() {
116
+ if (this.preSlotSyncTimeoutId !== undefined) {
117
+ clearTimeout(this.preSlotSyncTimeoutId);
118
+ }
119
+ this.preSlotSyncTimeoutId = setTimeout(() => {
120
+ this.preSlotSyncTimeoutId = undefined;
121
+ if (!this.el.isConnected) {
122
+ return;
123
+ }
124
+ this.syncPreSlotContent();
125
+ this.connectPreSlotObserver();
126
+ }, 0);
127
+ }
128
+ syncPreSlotContent() {
129
+ if (this.multiline || this.type === 'search') {
102
130
  return;
103
131
  }
104
- (_b = this.input) === null || _b === void 0 ? void 0 : _b.focus();
132
+ const next = Array.from(this.el.querySelectorAll('[slot="pre"]')).some((node) => node.closest('xpl-input') === this.el);
133
+ if (next !== this.hasPreSlotContent) {
134
+ this.hasPreSlotContent = next;
135
+ }
136
+ }
137
+ updateCharacterCount() {
138
+ this.characterCount = this.input?.value.length ?? 0;
105
139
  }
106
140
  renderInput() {
107
- var _a, _b, _c, _d, _e, _f;
108
141
  switch (this.type) {
109
142
  case 'file':
110
143
  return (h("xpl-input-file", { accept: this.accept, disabled: this.disabled, hideAcceptText: this.hideAcceptText, hideFileNames: this.hideFileNames, hideTriggerOnSelect: this.hideTriggerOnSelect, multiple: this.multiple, name: this.name, onInputChange: this.handleChildValueChange, _id: this._id }, h("slot", { name: "trigger" })));
@@ -117,27 +150,26 @@ export class Input {
117
150
  case 'phone':
118
151
  return (h("xpl-input-phone", { inputId: this._id, disabled: this.disabled, error: !!this.error, name: this.name, required: this.required, readonly: this.readonly, value: this.value, placeholder: this.placeholder, defaultCountry: this.defaultCountry, preferredCountries: this.preferredCountries, isInternational: this.isInternational, onValueChange: this.handleChildValueChange }));
119
152
  case 'search': {
120
- const hasVisibleLabel = Boolean(((_a = this.label) !== null && _a !== void 0 ? _a : '').trim());
153
+ const hasVisibleLabel = Boolean((this.label ?? '').trim());
121
154
  const hasErrorMessage = Boolean(this.error && this.error.length > 0);
122
- return (h("xpl-input-search", { ariaLabel: ((_b = this.ariaLabel) !== null && _b !== void 0 ? _b : '').trim() || 'Search', autocomplete: (_c = this.autocomplete) !== null && _c !== void 0 ? _c : 'off', disabled: this.disabled, errorMessageId: hasErrorMessage ? `${this._id}-error` : undefined, hasError: hasErrorMessage, hasVisibleLabel: hasVisibleLabel, inputId: this._id, name: this.name, onBlurEvent: this.handleSearchBlurForward, onFocusEvent: this.handleSearchFocusForward, onSearch: this.handleSearchCommit, onValueChange: this.handleChildValueChange, placeholder: (_d = this.placeholder) !== null && _d !== void 0 ? _d : 'Search', readonly: this.readonly, ref: (el) => {
123
- this.searchInputRef = el !== null && el !== void 0 ? el : undefined;
124
- }, required: this.required, shape: (_e = this.shape) !== null && _e !== void 0 ? _e : 'rounded', value: (_f = this.value) !== null && _f !== void 0 ? _f : '' }));
155
+ return (h("xpl-input-search", { ariaLabel: (this.ariaLabel ?? '').trim() || 'Search', autocomplete: this.autocomplete ?? 'off', disabled: this.disabled, errorMessageId: hasErrorMessage ? `${this._id}-error` : undefined, hasError: hasErrorMessage, hasVisibleLabel: hasVisibleLabel, inputId: this._id ?? '', name: this.name, onBlurEvent: this.handleSearchBlurForward, onFocusEvent: this.handleSearchFocusForward, onSearch: this.handleSearchCommit, onValueChange: this.handleChildValueChange, placeholder: this.placeholder ?? 'Search', readonly: this.readonly, ref: (el) => {
156
+ this.searchInputRef = el ?? undefined;
157
+ }, required: this.required, shape: this.shape ?? 'rounded', value: this.value ?? '' }));
125
158
  }
126
159
  default:
127
160
  return (h("div", { class: "xpl-input-wrapper" }, !this.multiline && (h("label", { class: {
128
161
  'xpl-input-pre': true,
129
162
  'xpl-input-pre--hidden': !this.pre && !this.hasPreSlotContent,
130
163
  }, htmlFor: this._id }, h("slot", { name: "pre" }, this.pre))), !this.multiline ? (h("input", { autocomplete: this.autocomplete, disabled: this.disabled, id: this._id, max: this.max, min: this.min, name: this.name, placeholder: this.placeholder, readonly: this.readonly, ref: (el) => {
131
- this.input = el;
164
+ this.input = el ?? undefined;
132
165
  }, required: this.required, step: this.step, type: this.type, value: this.value, onChange: this.valueChanged, onFocus: this.handleFocus, onBlur: this.handleBlur, onInput: this.handleInput })) : (h("textarea", { disabled: this.disabled, id: this._id, name: this.name, placeholder: this.placeholder, readonly: this.readonly, ref: (el) => {
133
- this.input = el;
166
+ this.input = el ?? undefined;
134
167
  }, required: this.required, onChange: this.valueChanged, onFocus: this.handleFocus, onBlur: this.handleBlur, onInput: this.handleInput }, this.value)), this.type === 'password' && (h("button", { "aria-label": "Toggle password visibility", class: "xpl-input-password", onClick: () => {
135
168
  this.passwordVisible = !this.passwordVisible;
136
169
  }, role: "presentation" }, h("xpl-icon", { icon: this.passwordVisible ? 'eye-closed' : 'eye', size: 24 }))), this.post && !this.multiline && (h("label", { class: "xpl-input-post", htmlFor: this._id }, this.post)), this.multiline && this.maxCharacterCount !== undefined && (h("span", { class: "xpl-input-characters" }, this.characterCount, "/", this.maxCharacterCount))));
137
170
  }
138
171
  }
139
172
  render() {
140
- var _a;
141
173
  let hasError = false;
142
174
  if (this.error) {
143
175
  hasError = true;
@@ -151,13 +183,13 @@ export class Input {
151
183
  if (type === 'password' && this.passwordVisible) {
152
184
  type = 'text';
153
185
  }
154
- return (h(Host, { key: '909cf5bbf56456a5bc27e5a3cb6a662ada8df1a7', class: {
186
+ return (h(Host, { key: '008387a60d49c0a4d303f7b6254c18ba109138c8', class: {
155
187
  'xpl-input': true,
156
- 'xpl-input--disabled': this.disabled,
188
+ 'xpl-input--disabled': !!this.disabled,
157
189
  'xpl-input--error': hasError,
158
- 'xpl-input--readonly': this.readonly,
190
+ 'xpl-input--readonly': !!this.readonly,
159
191
  [`xpl-input--${this.type}`]: true,
160
- } }, this.label && (h("label", { key: '0391385b4f19a7a4e36e0a42f4bac9e0400fd7df', class: "xpl-input-label", htmlFor: this._id }, this.label, this.description && h("small", { key: '5724a1710c660297a31cbc37b46b68a0e837e583' }, this.description))), this.renderInput(), ((_a = this.error) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("label", { key: 'ea1f4fe026d00c4119df392df786648f46e21e4b', class: "xpl-input-error", htmlFor: this._id, id: `${this._id}-error` }, h("xpl-icon", { key: '42c279d5e037da8178c4db4e4b934150ddc43a42', icon: "alert-circle", size: 16 }), h("span", { key: '461f9c09aaa8642df9645e856fa10a312572054c' }, this.error)))));
192
+ } }, this.label && (h("label", { key: '73e44138ac4bcd5ab6f96de33d818ae0d0bdb8fb', class: "xpl-input-label", htmlFor: this._id }, this.label, this.description && h("small", { key: '85b33374df5ba7f1c002d1a5555a23013fd5f8f9' }, this.description))), this.renderInput(), (this.error?.length ?? 0) > 0 && (h("label", { key: '802f79003fe348f0d6927701b4becdf086dc207e', class: "xpl-input-error", htmlFor: this._id, id: `${this._id}-error` }, h("xpl-icon", { key: '3b43c9816359cfbfc0c11a8874a4b561d04986d1', icon: "circle-warning", size: 16 }), h("span", { key: '76fe2a5cb424eb17e5d7c9358f81d2ad36775903' }, this.error)))));
161
193
  }
162
194
  static get is() { return "xpl-input"; }
163
195
  static get properties() {
@@ -1,5 +1,28 @@
1
+ import { expect, waitFor } from "storybook/test";
2
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
3
+ const waitForHydration = async ({ canvasElement }) => {
4
+ if (document.fonts?.ready) {
5
+ await document.fonts.ready;
6
+ }
7
+ await waitFor(() => {
8
+ const cards = canvasElement.querySelectorAll('xpl-large-card');
9
+ expect(cards.length).toBeGreaterThan(0);
10
+ const customEls = canvasElement.querySelectorAll('xpl-large-card, xpl-icon, xpl-tooltip');
11
+ customEls.forEach((el) => expect(el.classList.contains('hydrated')).toBe(true));
12
+ }, { timeout: 15000 });
13
+ };
1
14
  export default {
2
15
  title: 'Data Components/Large Card',
16
+ tags: ['vrt'],
17
+ beforeEach() {
18
+ document.body.classList.remove('dark');
19
+ document.body.classList.add('light');
20
+ setAutoSnapshotOptions({
21
+ enable: true,
22
+ failureThreshold: 2,
23
+ failureThresholdType: 'percent',
24
+ });
25
+ },
3
26
  argTypes: {
4
27
  contentType: {
5
28
  control: 'radio',
@@ -29,8 +52,8 @@ export default {
29
52
  },
30
53
  },
31
54
  };
32
- export const LargeCard = ({ name, description, link, title, graphContent }) => `
33
- <dl class="xpl-dl xpl-dl--center">
55
+ export const LargeCard = ({ name, description, link, title, graphContent, }) => `
56
+ <dl class="xpl-dl xpl-dl--center" style="width: 37.5rem;">
34
57
  <xpl-large-card
35
58
  name="${name}"
36
59
  description="${description}"
@@ -87,7 +110,7 @@ LargeCard.parameters = {
87
110
  ${title || ''}
88
111
  ${link
89
112
  ? `
90
- <span class="xpl-data-card__header-arrow">
113
+ <span class="xpl-large-card__header-arrow">
91
114
  <xpl-icon
92
115
  icon="chevron-right"
93
116
  size={16}
@@ -129,3 +152,4 @@ LargeCard.parameters = {
129
152
  url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=17661-38565&p=f&t=01tbTrRZyfvVafsA-11',
130
153
  },
131
154
  };
155
+ LargeCard.play = waitForHydration;
@@ -1,5 +1,24 @@
1
1
  import { Host, h } from "@stencil/core";
2
+ import { hostHasNamedSlot } from "../../utils/slot-presence";
3
+ const GRAPH_CONTENT_SLOT = 'graph-content';
2
4
  export class LargeCard {
5
+ constructor() {
6
+ this.graphContentPresent = false;
7
+ }
8
+ connectedCallback() {
9
+ this.syncGraphContentSlot();
10
+ this.connectGraphContentSlotObserver();
11
+ }
12
+ disconnectedCallback() {
13
+ if (this.graphContentSlotSyncTimeoutId !== undefined) {
14
+ clearTimeout(this.graphContentSlotSyncTimeoutId);
15
+ this.graphContentSlotSyncTimeoutId = undefined;
16
+ }
17
+ this.disconnectGraphContentSlotObserver();
18
+ }
19
+ componentWillLoad() {
20
+ this.syncGraphContentSlot();
21
+ }
3
22
  componentDidLoad() {
4
23
  if (this.link) {
5
24
  const anchorEl = this.el.getElementsByTagName('a')[0] || this.el.getElementsByTagName('button')[0];
@@ -10,10 +29,52 @@ export class LargeCard {
10
29
  anchorEl.appendChild(anchorSpan);
11
30
  }
12
31
  }
32
+ componentWillRender() {
33
+ this.disconnectGraphContentSlotObserver();
34
+ }
35
+ componentDidRender() {
36
+ this.scheduleGraphContentSlotSync();
37
+ }
38
+ connectGraphContentSlotObserver() {
39
+ this.disconnectGraphContentSlotObserver();
40
+ if (typeof MutationObserver === 'undefined') {
41
+ return;
42
+ }
43
+ this.graphContentSlotObserver = new MutationObserver(() => {
44
+ this.scheduleGraphContentSlotSync();
45
+ });
46
+ this.graphContentSlotObserver.observe(this.el, {
47
+ childList: true,
48
+ subtree: true,
49
+ attributes: true,
50
+ attributeFilter: ['slot'],
51
+ });
52
+ }
53
+ disconnectGraphContentSlotObserver() {
54
+ this.graphContentSlotObserver?.disconnect();
55
+ this.graphContentSlotObserver = undefined;
56
+ }
57
+ scheduleGraphContentSlotSync() {
58
+ if (this.graphContentSlotSyncTimeoutId !== undefined) {
59
+ clearTimeout(this.graphContentSlotSyncTimeoutId);
60
+ }
61
+ this.graphContentSlotSyncTimeoutId = setTimeout(() => {
62
+ this.graphContentSlotSyncTimeoutId = undefined;
63
+ if (!this.el.isConnected) {
64
+ return;
65
+ }
66
+ this.syncGraphContentSlot();
67
+ this.connectGraphContentSlotObserver();
68
+ }, 0);
69
+ }
70
+ syncGraphContentSlot() {
71
+ const hasGraphContent = hostHasNamedSlot(this.el, GRAPH_CONTENT_SLOT);
72
+ if (hasGraphContent !== this.graphContentPresent) {
73
+ this.graphContentPresent = hasGraphContent;
74
+ }
75
+ }
13
76
  render() {
14
- const contentSlot = 'graph-content';
15
- const hasContentSlot = this.el.querySelector(`[slot="${contentSlot}"]`);
16
- return (h(Host, { key: '30865d2efaf693257afb21c768981e2785c81ad4', role: "group", class: `xpl-large-card ${this.link ? 'xpl-large-card__link' : ''}`, tabindex: "0" }, h("dt", { key: 'bf95f5c52d36b3aa9174222ea2f3bb7e788f5992', class: "xpl-large-card__header" }, h("header", { key: '5a18e7dfe1544b65fa13e9b918d06ca0fdabb9f2' }, h("slot", { key: '94e9bd081a2c1fe5eb57cb8cedd0ab1224bb5bb3', name: "title" }, this.name), this.link && (h("span", { key: '082622ba8e2446dc65fe4f37ee1e15bab1c8785d', class: "xpl-data-card__header-arrow" }, h("xpl-icon", { key: '407180586601126e1ea5fb2c6af006d109067b39', icon: "chevron-right", size: 16 })))), this.description && (h("div", { key: '381711e6390dd685b0951d7dd08faeb6f9ef34f3', class: "xpl-large-card__description" }, this.description))), h("dd", { key: '2cf8a71574bef72aee76720525e26288b92cecc2', class: "xpl-large-card__body" }, hasContentSlot && h("slot", { key: '03a58f57d713de2abad1b815a77c91f340ef1f0a', name: contentSlot }))));
77
+ return (h(Host, { key: '1f4d73841c0645f6eaa784d5a684baf605fd249c', role: "group", class: `xpl-large-card ${this.link ? 'xpl-large-card__link' : ''}`, tabindex: "0" }, h("dt", { key: '37a067e460a49508251b44102fd8470caef01c95', class: "xpl-large-card__header" }, h("header", { key: '4ab9ba4d4bee0b82b7e5f51fec425caa23334bca' }, h("slot", { key: 'ce45a8dd99e027d1ce56c780d6304438524778b1', name: "title" }, this.name), this.link && (h("span", { key: '90c795212858e49ff947da8e91ccbeee357e92ef', class: "xpl-large-card__header-arrow" }, h("xpl-icon", { key: '459405641d21f234bc322f20745cdb5f81e4c60e', icon: "chevron-right", size: 16 })))), this.description && (h("div", { key: '7cffdab2f56ef65c097e254ae859b1314f96849f', class: "xpl-large-card__description" }, this.description))), h("dd", { key: '6454b51a6cc99af277c557b16a0e77877aa455d9', class: "xpl-large-card__body" }, this.graphContentPresent && h("slot", { key: 'c1ec933cef4a0098e69f408445de06ca32799911', name: GRAPH_CONTENT_SLOT }))));
17
78
  }
18
79
  static get is() { return "xpl-large-card"; }
19
80
  static get properties() {
@@ -77,5 +138,10 @@ export class LargeCard {
77
138
  }
78
139
  };
79
140
  }
141
+ static get states() {
142
+ return {
143
+ "graphContentPresent": {}
144
+ };
145
+ }
80
146
  static get elementRef() { return "el"; }
81
147
  }
@@ -1,4 +1,6 @@
1
1
  import { v4 as uuid } from "uuid";
2
+ import { setAutoSnapshotOptions } from "vitest-plugin-vis";
3
+ import { waitForHydration } from "../../../../.storybook/utils/wait-for-hydration";
2
4
  const PLACEHOLDER_AVATAR_SRC = 'https://placebear.com/128/128';
3
5
  function slotBasedAvatarMarkup(slotAvatar, name) {
4
6
  if (slotAvatar === 'image') {
@@ -10,6 +12,13 @@ function slotBasedAvatarMarkup(slotAvatar, name) {
10
12
  return `<xpl-avatar name="${name}"></xpl-avatar>`;
11
13
  }
12
14
  export default {
15
+ tags: ['vrt'],
16
+ beforeEach() {
17
+ setAutoSnapshotOptions({ enable: true });
18
+ },
19
+ async play({ canvasElement }) {
20
+ await waitForHydration(canvasElement);
21
+ },
13
22
  title: 'Components/List',
14
23
  parameters: {
15
24
  controls: {
@@ -165,7 +174,7 @@ export default {
165
174
  },
166
175
  },
167
176
  };
168
- const script = ({ id, avatar, avatars, badges, metadata, link, title, subtext }) => `
177
+ const script = ({ id, avatar, avatars, badges, metadata, link, title, subtext, }) => `
169
178
  (function() {
170
179
  const list = document.getElementById("${id}");
171
180
  const item = ${JSON.stringify({
@@ -289,7 +298,7 @@ export const List = (props) => {
289
298
  `;
290
299
  }
291
300
  return `<xpl-list id="${id}"></xpl-list>
292
- <script>${script(Object.assign({ id }, props))}</script>`;
301
+ <script>${script({ id, ...props })}</script>`;
293
302
  };
294
303
  List.args = {
295
304
  type: 'Slot based',
@@ -14,6 +14,12 @@ function emptyXplListItemSlotPresence() {
14
14
  title: false,
15
15
  };
16
16
  }
17
+ function renderLegacyAvatarCell(item) {
18
+ if (!item.avatar || typeof item.avatar !== 'string') {
19
+ return null;
20
+ }
21
+ return item.avatar.slice(0, 1) === '/' || item.avatar.slice(0, 4) === 'http' ? (h("xpl-avatar", { src: item.avatar, name: item.title })) : (h("xpl-avatar", { name: item.title }, item.avatar));
22
+ }
17
23
  export class XplListItem {
18
24
  constructor() {
19
25
  this.dragFromHandle = false;
@@ -42,7 +48,7 @@ export class XplListItem {
42
48
  e.dataTransfer.setData('text/plain', this.itemId || this.el.id || '');
43
49
  }
44
50
  const wrapper = this.el.querySelector('.xpl-list-item__wrapper');
45
- wrapper === null || wrapper === void 0 ? void 0 : wrapper.classList.add('dragging');
51
+ wrapper?.classList.add('dragging');
46
52
  this.itemDragStart.emit({ itemId: this.itemId, item: this.el });
47
53
  };
48
54
  this.handleDrop = (e) => {
@@ -69,7 +75,7 @@ export class XplListItem {
69
75
  }
70
76
  e.preventDefault();
71
77
  const wrapper = this.el.querySelector('.xpl-list-item__wrapper');
72
- wrapper === null || wrapper === void 0 ? void 0 : wrapper.classList.add('drag-over');
78
+ wrapper?.classList.add('drag-over');
73
79
  };
74
80
  this.handleDragLeave = (e) => {
75
81
  if (this.disabled) {
@@ -84,7 +90,7 @@ export class XplListItem {
84
90
  this.detachDragHandlePointerReleaseListeners();
85
91
  this.dragFromHandle = false;
86
92
  const wrapper = this.el.querySelector('.xpl-list-item__wrapper');
87
- wrapper === null || wrapper === void 0 ? void 0 : wrapper.classList.remove('dragging', 'drag-over');
93
+ wrapper?.classList.remove('dragging', 'drag-over');
88
94
  const parent = this.el.parentElement;
89
95
  if (parent) {
90
96
  Array.from(parent.children).forEach((sibling) => {
@@ -92,7 +98,7 @@ export class XplListItem {
92
98
  return;
93
99
  }
94
100
  const siblingWrapper = sibling.querySelector('.xpl-list-item__wrapper');
95
- siblingWrapper === null || siblingWrapper === void 0 ? void 0 : siblingWrapper.classList.remove('drag-over');
101
+ siblingWrapper?.classList.remove('drag-over');
96
102
  });
97
103
  }
98
104
  this.itemDragEnd.emit({ itemId: this.itemId, item: this.el });
@@ -281,22 +287,20 @@ export class XplListItem {
281
287
  return false;
282
288
  }
283
289
  getTitleSlotAccessibleText() {
284
- var _a;
285
290
  const directTitle = Array.from(this.el.children).find((c) => c.getAttribute('slot') === 'title');
286
291
  if (directTitle) {
287
- return (_a = directTitle.textContent) !== null && _a !== void 0 ? _a : undefined;
292
+ return directTitle.textContent ?? undefined;
288
293
  }
289
294
  const slotEl = Array.from(this.el.querySelectorAll('slot[name="title"]')).find((s) => s.closest('xpl-list-item') === this.el);
290
295
  if (slotEl && typeof slotEl.assignedNodes === 'function') {
291
296
  const combined = slotEl
292
297
  .assignedNodes({ flatten: true })
293
298
  .map((node) => {
294
- var _a, _b;
295
299
  if (node.nodeType === Node.TEXT_NODE) {
296
- return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
300
+ return node.textContent ?? '';
297
301
  }
298
302
  if (node.nodeType === Node.ELEMENT_NODE) {
299
- return (_b = node.textContent) !== null && _b !== void 0 ? _b : '';
303
+ return node.textContent ?? '';
300
304
  }
301
305
  return '';
302
306
  })
@@ -307,26 +311,24 @@ export class XplListItem {
307
311
  return undefined;
308
312
  }
309
313
  getRowIdForAccessibleLabel() {
310
- var _a, _b, _c;
311
- const fromProp = (_a = this.itemId) === null || _a === void 0 ? void 0 : _a.trim();
314
+ const fromProp = this.itemId?.trim();
312
315
  if (fromProp) {
313
316
  return fromProp;
314
317
  }
315
- const fromAttr = (_b = this.el.getAttribute('item-id')) === null || _b === void 0 ? void 0 : _b.trim();
318
+ const fromAttr = this.el.getAttribute('item-id')?.trim();
316
319
  if (fromAttr) {
317
320
  return fromAttr;
318
321
  }
319
- const fromId = (_c = this.el.id) === null || _c === void 0 ? void 0 : _c.trim();
322
+ const fromId = this.el.id?.trim();
320
323
  if (fromId) {
321
324
  return fromId;
322
325
  }
323
326
  return '';
324
327
  }
325
328
  getSelectableRadioLabel() {
326
- var _a;
327
329
  const rowId = this.getRowIdForAccessibleLabel();
328
330
  if (this.slotPresence.title) {
329
- const titleText = (_a = this.getTitleSlotAccessibleText()) === null || _a === void 0 ? void 0 : _a.trim();
331
+ const titleText = this.getTitleSlotAccessibleText()?.trim();
330
332
  if (titleText) {
331
333
  return titleText;
332
334
  }
@@ -340,22 +342,19 @@ export class XplListItem {
340
342
  }
341
343
  return 'Select list item';
342
344
  }
343
- renderLegacyAvatarCell() {
344
- if (!this.item.avatar || typeof this.item.avatar !== 'string') {
345
- return null;
346
- }
347
- return this.item.avatar.slice(0, 1) === '/' || this.item.avatar.slice(0, 4) === 'http' ? (h("xpl-avatar", { src: this.item.avatar, name: this.item.title })) : (h("xpl-avatar", { name: this.item.title }, this.item.avatar));
348
- }
349
345
  renderPropBasedItem() {
350
346
  const { item } = this;
347
+ if (!item) {
348
+ return null;
349
+ }
351
350
  const hasRight = item.avatars || item.badges || item.subtext;
352
351
  const Tag = item.href ? 'a' : 'div';
353
352
  const linkProps = item.href ? { href: item.href } : {};
354
353
  return (h(Host, { role: "listitem", class: {
355
354
  'xpl-list-item': true,
356
- 'xpl-list-item--error': this.error,
357
- 'xpl-list-item--disabled': this.disabled,
358
- }, hidden: this.hidden }, this.renderLegacyAvatarCell(), h(Tag, Object.assign({ class: "xpl-list-item-content" }, linkProps), h("div", { class: "xpl-list-left" }, h("div", null, h("h4", null, item.title), item.metadata && (h("ul", { class: "xpl-list-item-metadata" }, item.metadata.map((d) => {
355
+ 'xpl-list-item--error': !!this.error,
356
+ 'xpl-list-item--disabled': !!this.disabled,
357
+ }, hidden: this.hidden }, renderLegacyAvatarCell(item), h(Tag, { class: "xpl-list-item-content", ...linkProps }, h("div", { class: "xpl-list-left" }, h("div", null, h("h4", null, item.title), item.metadata && (h("ul", { class: "xpl-list-item-metadata" }, item.metadata.map((d) => {
359
358
  if (typeof d === 'string') {
360
359
  return h("li", null, d);
361
360
  }
@@ -379,7 +378,6 @@ export class XplListItem {
379
378
  return (h("div", { class: "xpl-list-item__title-badge" }, h("xpl-badge", { dotOnly: true, size: "small", variant: variant })));
380
379
  }
381
380
  renderSlotBasedItem() {
382
- var _a;
383
381
  const hasRightSideContent = this.slotPresence.details || this.slotPresence.badges || this.slotPresence.actions;
384
382
  const hasStackedContent = this.slotPresence.title ||
385
383
  this.slotPresence.metadata ||
@@ -401,21 +399,21 @@ export class XplListItem {
401
399
  const rowBody = (h(Fragment, null, reorderActive && (h("div", { class: "xpl-list-item__reorderable" }, h("xpl-button", { class: {
402
400
  'xpl-list-item__drag-handle': true,
403
401
  'xpl-list-item__drag-handle--keyboard-mode': this.isKeyboardMode,
404
- }, type: "button", variant: "tertiary", sentiment: "neutral", iconOnly: true, icon: this.isKeyboardMode ? 'caret-expand-y' : 'grip-dots-vertical', disabled: this.disabled, onClick: this.preventRowLinkNavigation, onMouseDown: this.handleDragHandleMouseDown, onKeyDown: this.handleDragHandleKeyDown }))), this.selectable && radioGroupName ? (h("div", { class: "xpl-list-item__selectable", onClick: this.handleRadioClick }, h("xpl-radio", { checked: this.selected, disabled: this.disabled, name: radioGroupName, value: (_a = this.itemId) !== null && _a !== void 0 ? _a : '', onRadioChange: this.handleRadioChange }, this.getSelectableRadioLabel()))) : null, this.slotPresence.avatar && (h("div", { class: "xpl-list-item__avatar", onClick: this.preventRowLinkNavigation }, h("slot", { name: "avatar" }))), hasStackedContent && (h("div", { class: "xpl-list-item__stacked" }, (this.slotPresence.title || this.slotPresence.titleBadge) && (h("div", { class: "xpl-list-item__title-row" }, h("div", { class: "xpl-list-item__title-wrapper" }, this.renderTitleBadge(), h("slot", { name: "title" })))), this.showDivider && h("xpl-divider", null), this.slotPresence.metadata && (h("div", { class: "xpl-list-item__metadata-row" }, h("slot", { name: "metadata" }))), this.slotPresence.stackedExtra1 && (h("div", { class: "xpl-list-item__stacked-extra-1" }, h("slot", { name: "stacked-extra-1" }))), this.slotPresence.stackedExtra2 && (h("div", { class: "xpl-list-item__stacked-extra-2" }, h("slot", { name: "stacked-extra-2" }))), this.slotPresence.stackedExtra3 && (h("div", { class: "xpl-list-item__stacked-extra-3" }, h("slot", { name: "stacked-extra-3" }))))), hasRightSideContent && (h("div", { class: "xpl-list-item__right" }, this.slotPresence.details && (h("div", { class: "xpl-list-item__details" }, h("slot", { name: "details" }))), this.slotPresence.badges && (h("div", { class: "xpl-list-item__badges" }, h("slot", { name: "badges" }))), this.slotPresence.actions && (h("div", { class: "xpl-list-item__actions", onClick: this.preventRowLinkNavigation }, h("slot", { name: "actions" }))))), this.href ? (h("span", { class: "xpl-list-item__link-chevron", "aria-hidden": "true" }, h("xpl-icon", { icon: "chevron-right", size: 12 }))) : null));
402
+ }, type: "button", variant: "tertiary", sentiment: "neutral", iconOnly: true, icon: this.isKeyboardMode ? 'caret-expand-y' : 'grip-dots-vertical', disabled: this.disabled, onClick: this.preventRowLinkNavigation, onMouseDown: this.handleDragHandleMouseDown, onKeyDown: this.handleDragHandleKeyDown }))), this.selectable && radioGroupName ? (h("div", { class: "xpl-list-item__selectable", onClick: this.handleRadioClick }, h("xpl-radio", { checked: this.selected, disabled: this.disabled, name: radioGroupName, value: this.itemId ?? '', onRadioChange: this.handleRadioChange }, this.getSelectableRadioLabel()))) : null, this.slotPresence.avatar && (h("div", { class: "xpl-list-item__avatar", onClick: this.preventRowLinkNavigation }, h("slot", { name: "avatar" }))), hasStackedContent && (h("div", { class: "xpl-list-item__stacked" }, (this.slotPresence.title || this.slotPresence.titleBadge) && (h("div", { class: "xpl-list-item__title-row" }, h("div", { class: "xpl-list-item__title-wrapper" }, this.renderTitleBadge(), h("slot", { name: "title" })))), this.showDivider && h("xpl-divider", null), this.slotPresence.metadata && (h("div", { class: "xpl-list-item__metadata-row" }, h("slot", { name: "metadata" }))), this.slotPresence.stackedExtra1 && (h("div", { class: "xpl-list-item__stacked-extra-1" }, h("slot", { name: "stacked-extra-1" }))), this.slotPresence.stackedExtra2 && (h("div", { class: "xpl-list-item__stacked-extra-2" }, h("slot", { name: "stacked-extra-2" }))), this.slotPresence.stackedExtra3 && (h("div", { class: "xpl-list-item__stacked-extra-3" }, h("slot", { name: "stacked-extra-3" }))))), hasRightSideContent && (h("div", { class: "xpl-list-item__right" }, this.slotPresence.details && (h("div", { class: "xpl-list-item__details" }, h("slot", { name: "details" }))), this.slotPresence.badges && (h("div", { class: "xpl-list-item__badges" }, h("slot", { name: "badges" }))), this.slotPresence.actions && (h("div", { class: "xpl-list-item__actions", onClick: this.preventRowLinkNavigation }, h("slot", { name: "actions" }))))), this.href ? (h("span", { class: "xpl-list-item__link-chevron", "aria-hidden": "true" }, h("xpl-icon", { icon: "chevron-right", size: 12 }))) : null));
405
403
  return (h(Host, { class: {
406
404
  'xpl-list-item': true,
407
- 'xpl-list-item--error': this.error || this.slotPresence.errorText,
408
- 'xpl-list-item--disabled': this.disabled,
405
+ 'xpl-list-item--error': !!(this.error || this.slotPresence.errorText),
406
+ 'xpl-list-item--disabled': !!this.disabled,
409
407
  'xpl-list-item--slot-based': true,
410
- 'xpl-list-item--selected': this.selected,
411
- }, hidden: this.hidden }, this.href ? (h("div", { role: "listitem", class: "xpl-list-item__listitem-shell" }, h("a", Object.assign({ class: wrapperClass, href: this.href }, dragSurfaceProps), rowBody))) : (h("div", Object.assign({ role: "listitem", class: wrapperClass }, dragSurfaceProps), rowBody)), this.slotPresence.errorText && (h("div", { class: "xpl-list-item__error-text" }, h("xpl-icon", { icon: "circle-warning", size: 16 }), h("slot", { name: "error-text" })))));
408
+ 'xpl-list-item--selected': !!this.selected,
409
+ }, hidden: this.hidden }, this.href ? (h("div", { role: "listitem", class: "xpl-list-item__listitem-shell" }, h("a", { class: wrapperClass, href: this.href, ...dragSurfaceProps }, rowBody))) : (h("div", { role: "listitem", class: wrapperClass, ...dragSurfaceProps }, rowBody)), this.slotPresence.errorText && (h("div", { class: "xpl-list-item__error-text" }, h("xpl-icon", { icon: "circle-warning", size: 16 }), h("slot", { name: "error-text" })))));
412
410
  }
413
411
  syncReorderDragHandleA11y() {
414
412
  if (!this.reorderable || this.disabled) {
415
413
  return;
416
414
  }
417
415
  const host = this.el.querySelector('xpl-button.xpl-list-item__drag-handle');
418
- const nativeBtn = host === null || host === void 0 ? void 0 : host.querySelector('button');
416
+ const nativeBtn = host?.querySelector('button');
419
417
  if (!nativeBtn) {
420
418
  return;
421
419
  }