@xplortech/apollo-core 2.5.0 → 2.6.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 (373) hide show
  1. package/.typings/apollo-components.html-data.json +393 -26
  2. package/build/style.css +4224 -1016
  3. package/dist/apollo-core/apollo-core.css +18 -27
  4. package/dist/apollo-core/apollo-core.esm.js +1 -1
  5. package/dist/apollo-core/p-02167464.entry.js +1 -0
  6. package/dist/apollo-core/p-0bce3874.entry.js +1 -0
  7. package/dist/apollo-core/{p-0e1877a2.entry.js → p-1fd3dc87.entry.js} +1 -1
  8. package/dist/apollo-core/{p-0ac33b3a.entry.js → p-42016063.entry.js} +1 -1
  9. package/dist/apollo-core/p-5549756c.entry.js +1 -0
  10. package/dist/apollo-core/p-56fa4941.entry.js +1 -0
  11. package/dist/apollo-core/p-76c324da.entry.js +1 -0
  12. package/dist/apollo-core/p-7a3224b4.entry.js +1 -0
  13. package/dist/apollo-core/p-7e924697.entry.js +1 -0
  14. package/dist/apollo-core/{p-f4c2626d.entry.js → p-8a1affce.entry.js} +1 -1
  15. package/dist/apollo-core/p-9efca9e1.entry.js +1 -0
  16. package/dist/apollo-core/p-C_Z2nG0p.js +2 -0
  17. package/dist/apollo-core/p-b252b380.entry.js +1 -0
  18. package/dist/apollo-core/p-c91daac1.entry.js +1 -0
  19. package/dist/apollo-core/p-d9b62508.entry.js +1 -0
  20. package/dist/apollo-core/p-eaea16d1.entry.js +1 -0
  21. package/dist/apollo-core/p-eed13bca.entry.js +1 -0
  22. package/dist/apollo-core/{p-4fab8172.entry.js → p-f5af9539.entry.js} +1 -1
  23. package/dist/cjs/apollo-core.cjs.js +3 -3
  24. package/dist/cjs/{index-D__N_vw2.js → index-DH6pgWru.js} +137 -87
  25. package/dist/cjs/loader.cjs.js +2 -2
  26. package/dist/cjs/xpl-accordion.cjs.entry.js +5 -5
  27. package/dist/cjs/xpl-application-shell.cjs.entry.js +4 -4
  28. package/dist/cjs/{xpl-avatar_41.cjs.entry.js → xpl-avatar_47.cjs.entry.js} +2802 -272
  29. package/dist/cjs/xpl-button-row.cjs.entry.js +4 -4
  30. package/dist/cjs/xpl-calendar.cjs.entry.js +4 -4
  31. package/dist/cjs/xpl-dynamic-table-cell.cjs.entry.js +5 -5
  32. package/dist/cjs/xpl-dynamic-table-row.cjs.entry.js +5 -5
  33. package/dist/cjs/xpl-dynamic-table.cjs.entry.js +4 -4
  34. package/dist/cjs/xpl-grid-item.cjs.entry.js +4 -4
  35. package/dist/cjs/xpl-grid.cjs.entry.js +4 -4
  36. package/dist/cjs/xpl-large-card.cjs.entry.js +4 -4
  37. package/dist/cjs/xpl-list.cjs.entry.js +4 -4
  38. package/dist/cjs/xpl-main-nav.cjs.entry.js +4 -4
  39. package/dist/cjs/xpl-table-header-cell.cjs.entry.js +3 -3
  40. package/dist/cjs/xpl-table-header.cjs.entry.js +4 -4
  41. package/dist/cjs/xpl-toggle.cjs.entry.js +6 -6
  42. package/dist/cjs/xpl-toolbar.cjs.entry.js +5 -5
  43. package/dist/collection/collection-manifest.json +9 -2
  44. package/dist/collection/components/xpl-accordion/accordion.stories.js +4 -0
  45. package/dist/collection/components/xpl-accordion/xpl-accordion.js +3 -3
  46. package/dist/collection/components/xpl-application-shell/application-shell.stories.js +4 -0
  47. package/dist/collection/components/xpl-application-shell/xpl-application-shell.js +2 -2
  48. package/dist/collection/components/xpl-avatar/avatar.stories.js +4 -0
  49. package/dist/collection/components/xpl-avatar/xpl-avatar.js +3 -3
  50. package/dist/collection/components/xpl-backdrop/backdrop.stories.js +4 -0
  51. package/dist/collection/components/xpl-backdrop/xpl-backdrop.js +2 -2
  52. package/dist/collection/components/xpl-badge/badge.stories.js +108 -33
  53. package/dist/collection/components/xpl-badge/xpl-badge.js +122 -14
  54. package/dist/collection/components/xpl-banner/banner.stories.js +64 -0
  55. package/dist/collection/components/xpl-banner/xpl-banner.js +295 -0
  56. package/dist/collection/components/xpl-breadcrumbs/breadcrumbs.stories.js +4 -0
  57. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.js +2 -2
  58. package/dist/collection/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.js +2 -2
  59. package/dist/collection/components/xpl-button/button.stories.js +102 -98
  60. package/dist/collection/components/xpl-button/xpl-button.js +183 -93
  61. package/dist/collection/components/xpl-button-row/xpl-button-row.js +2 -2
  62. package/dist/collection/components/xpl-calendar/calendar.stories.js +4 -0
  63. package/dist/collection/components/xpl-calendar/xpl-calendar.js +2 -2
  64. package/dist/collection/components/xpl-checkbox/checkbox.stories.js +4 -0
  65. package/dist/collection/components/xpl-checkbox/xpl-checkbox.js +4 -4
  66. package/dist/collection/components/xpl-choicelist/choicelist.stories.js +4 -0
  67. package/dist/collection/components/xpl-choicelist/xpl-choicelist.js +2 -2
  68. package/dist/collection/components/xpl-content-area/xpl-content-area.js +2 -2
  69. package/dist/collection/components/xpl-dashboard/xpl-dashboard.js +2 -2
  70. package/dist/collection/components/xpl-data-card/data-card.stories.js +4 -0
  71. package/dist/collection/components/xpl-data-card/xpl-data-card.js +3 -3
  72. package/dist/collection/components/xpl-divider/divider.stories.js +4 -0
  73. package/dist/collection/components/xpl-divider/xpl-divider.js +2 -2
  74. package/dist/collection/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.js +2 -2
  75. package/dist/collection/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.js +2 -2
  76. package/dist/collection/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.js +29 -4
  77. package/dist/collection/components/xpl-dropdown/xpl-dropdown.js +120 -79
  78. package/dist/collection/components/xpl-dynamic-table/xpl-dynamic-table.js +2 -2
  79. package/dist/collection/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.js +3 -3
  80. package/dist/collection/components/xpl-dynamic-table-row/xpl-dynamic-table-row.js +3 -3
  81. package/dist/collection/components/xpl-grid/xpl-grid.js +2 -2
  82. package/dist/collection/components/xpl-grid-item/xpl-grid-item.js +2 -2
  83. package/dist/collection/components/xpl-header-accordion/xpl-header-accordion.js +2 -2
  84. package/dist/collection/components/xpl-icon/xpl-icon.js +3 -3
  85. package/dist/collection/components/xpl-input/input.stories.js +75 -9
  86. package/dist/collection/components/xpl-input/xpl-input-color/xpl-input-color.js +9 -9
  87. package/dist/collection/components/xpl-input/xpl-input-date/xpl-input-date.js +55 -17
  88. package/dist/collection/components/xpl-input/xpl-input-file/xpl-input-file.js +5 -5
  89. package/dist/collection/components/xpl-input/xpl-input-phone/phone-country-data.js +58 -0
  90. package/dist/collection/components/xpl-input/xpl-input-phone/phone-format.js +219 -0
  91. package/dist/collection/components/xpl-input/xpl-input-phone/xpl-input-phone.js +469 -0
  92. package/dist/collection/components/xpl-input/xpl-input-time/xpl-input-time.js +3 -3
  93. package/dist/collection/components/xpl-input/xpl-input.js +101 -7
  94. package/dist/collection/components/xpl-large-card/large-card.stories.js +4 -0
  95. package/dist/collection/components/xpl-large-card/xpl-large-card.js +2 -2
  96. package/dist/collection/components/xpl-list/xpl-list.js +2 -2
  97. package/dist/collection/components/xpl-main-nav/xpl-main-nav.js +2 -2
  98. package/dist/collection/components/xpl-modal/modal.stories.js +4 -0
  99. package/dist/collection/components/xpl-modal/xpl-modal.js +2 -2
  100. package/dist/collection/components/xpl-nav-item/xpl-nav-item.js +3 -3
  101. package/dist/collection/components/xpl-pagination/pagination.stories.js +4 -0
  102. package/dist/collection/components/xpl-pagination/xpl-pagination.js +4 -4
  103. package/dist/collection/components/xpl-panel/panel.stories.js +51 -0
  104. package/dist/collection/components/xpl-panel/xpl-panel.js +60 -0
  105. package/dist/collection/components/xpl-popover/popover.stories.js +4 -0
  106. package/dist/collection/components/xpl-popover/xpl-popover.js +5 -5
  107. package/dist/collection/components/xpl-progress/xpl-progress.js +2 -2
  108. package/dist/collection/components/xpl-progress-bar/progress-bar.stories.js +96 -0
  109. package/dist/collection/components/xpl-progress-bar/xpl-progress-bar.js +158 -0
  110. package/dist/collection/components/xpl-radio/xpl-radio.js +4 -4
  111. package/dist/collection/components/xpl-secondary-nav/xpl-secondary-nav.js +2 -2
  112. package/dist/collection/components/xpl-select/xpl-select.js +7 -7
  113. package/dist/collection/components/xpl-side-nav/side-nav.stories.js +519 -0
  114. package/dist/collection/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.js +259 -0
  115. package/dist/collection/components/xpl-side-nav/xpl-side-nav.js +32 -0
  116. package/dist/collection/components/xpl-skeleton/xpl-skeleton.js +2 -2
  117. package/dist/collection/components/xpl-slideout/xpl-slideout.js +2 -2
  118. package/dist/collection/components/xpl-tab/xpl-tab.js +3 -3
  119. package/dist/collection/components/xpl-tab-panel/xpl-tab-panel.js +3 -3
  120. package/dist/collection/components/xpl-table/xpl-table.js +6 -6
  121. package/dist/collection/components/xpl-table-header/xpl-table-header.js +2 -2
  122. package/dist/collection/components/xpl-table-header-cell/xpl-table-header-cell.js +1 -1
  123. package/dist/collection/components/xpl-tabs/xpl-tabs.js +6 -6
  124. package/dist/collection/components/xpl-tag/xpl-tag.js +3 -3
  125. package/dist/collection/components/xpl-toast/xpl-toast.js +3 -3
  126. package/dist/collection/components/xpl-toggle/xpl-toggle.js +4 -4
  127. package/dist/collection/components/xpl-toolbar/xpl-toolbar.js +3 -3
  128. package/dist/collection/components/xpl-tooltip/xpl-tooltip.js +2 -2
  129. package/dist/collection/components/xpl-utility-bar/xpl-utility-bar.js +2 -2
  130. package/dist/collection/utils/layout-ancestors.js +22 -0
  131. package/dist/components/index.js +1 -1
  132. package/dist/components/xpl-accordion.js +1 -1
  133. package/dist/components/xpl-application-shell.js +1 -1
  134. package/dist/components/xpl-avatar.js +1 -1
  135. package/dist/components/xpl-avatar2.js +1 -1
  136. package/dist/components/xpl-backdrop.js +1 -1
  137. package/dist/components/xpl-backdrop2.js +1 -1
  138. package/dist/components/xpl-badge.js +1 -1
  139. package/dist/components/xpl-badge2.js +1 -1
  140. package/dist/components/xpl-banner.d.ts +11 -0
  141. package/dist/components/xpl-banner.js +1 -0
  142. package/dist/components/xpl-breadcrumb-item.js +1 -1
  143. package/dist/components/xpl-breadcrumbs.js +1 -1
  144. package/dist/components/xpl-button-row.js +1 -1
  145. package/dist/components/xpl-button.js +1 -1
  146. package/dist/components/xpl-button2.js +1 -1
  147. package/dist/components/xpl-calendar.js +1 -1
  148. package/dist/components/xpl-checkbox.js +1 -1
  149. package/dist/components/xpl-checkbox2.js +1 -1
  150. package/dist/components/xpl-choicelist.js +1 -1
  151. package/dist/components/xpl-content-area.js +1 -1
  152. package/dist/components/xpl-dashboard.js +1 -1
  153. package/dist/components/xpl-data-card.js +1 -1
  154. package/dist/components/xpl-divider.js +1 -1
  155. package/dist/components/xpl-divider2.js +1 -1
  156. package/dist/components/xpl-dropdown-group.js +1 -1
  157. package/dist/components/xpl-dropdown-group2.js +1 -1
  158. package/dist/components/xpl-dropdown-heading.js +1 -1
  159. package/dist/components/xpl-dropdown-heading2.js +1 -1
  160. package/dist/components/xpl-dropdown-option.js +1 -1
  161. package/dist/components/xpl-dropdown-option2.js +1 -1
  162. package/dist/components/xpl-dropdown.js +1 -1
  163. package/dist/components/xpl-dropdown2.js +1 -1
  164. package/dist/components/xpl-dynamic-table-cell.js +1 -1
  165. package/dist/components/xpl-dynamic-table-row.js +1 -1
  166. package/dist/components/xpl-dynamic-table.js +1 -1
  167. package/dist/components/xpl-grid-item.js +1 -1
  168. package/dist/components/xpl-grid.js +1 -1
  169. package/dist/components/xpl-header-accordion.js +1 -1
  170. package/dist/components/xpl-icon.js +1 -1
  171. package/dist/components/xpl-icon2.js +1 -1
  172. package/dist/components/xpl-input-date.js +1 -1
  173. package/dist/components/xpl-input-date2.js +1 -1
  174. package/dist/components/xpl-input-file.js +1 -1
  175. package/dist/components/xpl-input-file2.js +1 -1
  176. package/dist/components/xpl-input-phone.d.ts +11 -0
  177. package/dist/components/xpl-input-phone.js +1 -0
  178. package/dist/components/xpl-input-time.js +1 -1
  179. package/dist/components/xpl-input.js +1 -1
  180. package/dist/components/xpl-input2.js +1 -1
  181. package/dist/components/xpl-large-card.js +1 -1
  182. package/dist/components/xpl-list.js +1 -1
  183. package/dist/components/xpl-main-nav.js +1 -1
  184. package/dist/components/xpl-modal.js +1 -1
  185. package/dist/components/xpl-nav-item.js +1 -1
  186. package/dist/components/xpl-pagination.js +1 -1
  187. package/dist/components/xpl-panel.d.ts +11 -0
  188. package/dist/components/xpl-panel.js +1 -0
  189. package/dist/components/xpl-popover.js +1 -1
  190. package/dist/components/xpl-popover2.js +1 -1
  191. package/dist/components/xpl-progress-bar.d.ts +11 -0
  192. package/dist/components/xpl-progress-bar.js +1 -0
  193. package/dist/components/xpl-progress.js +1 -1
  194. package/dist/components/xpl-radio.js +1 -1
  195. package/dist/components/xpl-radio2.js +1 -1
  196. package/dist/components/xpl-secondary-nav.js +1 -1
  197. package/dist/components/xpl-select.js +1 -1
  198. package/dist/components/xpl-select2.js +1 -1
  199. package/dist/components/xpl-side-nav-item.d.ts +11 -0
  200. package/dist/components/xpl-side-nav-item.js +1 -0
  201. package/dist/components/xpl-side-nav.d.ts +11 -0
  202. package/dist/components/xpl-side-nav.js +1 -0
  203. package/dist/components/xpl-skeleton.js +1 -1
  204. package/dist/components/xpl-slideout.js +1 -1
  205. package/dist/components/xpl-tab-panel.js +1 -1
  206. package/dist/components/xpl-tab.js +1 -1
  207. package/dist/components/xpl-table-header.js +1 -1
  208. package/dist/components/xpl-table.js +1 -1
  209. package/dist/components/xpl-tabs.js +1 -1
  210. package/dist/components/xpl-tag.js +1 -1
  211. package/dist/components/xpl-tag2.js +1 -1
  212. package/dist/components/xpl-toast.js +1 -1
  213. package/dist/components/xpl-toggle.js +1 -1
  214. package/dist/components/xpl-toolbar.js +1 -1
  215. package/dist/components/xpl-tooltip.js +1 -1
  216. package/dist/components/xpl-tooltip2.js +1 -1
  217. package/dist/components/xpl-utility-bar.js +1 -1
  218. package/dist/docs/xpl-accordion/readme.md +4 -0
  219. package/dist/docs/xpl-avatar/readme.md +5 -0
  220. package/dist/docs/xpl-backdrop/readme.md +1 -1
  221. package/dist/docs/xpl-badge/readme.md +97 -4
  222. package/dist/docs/xpl-banner/readme.md +166 -0
  223. package/dist/docs/xpl-button/readme.md +151 -14
  224. package/dist/docs/xpl-button-row/readme.md +1 -0
  225. package/dist/docs/xpl-calendar/readme.md +2 -1
  226. package/dist/docs/xpl-checkbox/readme.md +2 -0
  227. package/dist/docs/xpl-choicelist/readme.md +1 -0
  228. package/dist/docs/xpl-data-card/readme.md +2 -2
  229. package/dist/docs/xpl-divider/readme.md +1 -1
  230. package/dist/docs/xpl-dropdown/readme.md +14 -11
  231. package/dist/docs/xpl-dropdown/xpl-dropdown-group/readme.md +1 -0
  232. package/dist/docs/xpl-dropdown/xpl-dropdown-option/readme.md +6 -0
  233. package/dist/docs/xpl-icon/readme.md +12 -0
  234. package/dist/docs/xpl-input/readme.md +41 -31
  235. package/dist/docs/xpl-input/xpl-input-color/readme.md +4 -0
  236. package/dist/docs/xpl-input/xpl-input-phone/readme.md +167 -0
  237. package/dist/docs/xpl-input/xpl-input-time/readme.md +4 -0
  238. package/dist/docs/xpl-large-card/readme.md +1 -1
  239. package/dist/docs/xpl-modal/readme.md +3 -0
  240. package/dist/docs/xpl-pagination/readme.md +3 -0
  241. package/dist/docs/xpl-panel/readme.md +83 -0
  242. package/dist/docs/xpl-popover/readme.md +1 -1
  243. package/dist/docs/xpl-progress-bar/readme.md +145 -0
  244. package/dist/docs/xpl-select/readme.md +1 -0
  245. package/dist/docs/xpl-side-nav/readme.md +71 -0
  246. package/dist/docs/xpl-side-nav/xpl-side-nav-item/readme.md +115 -0
  247. package/dist/docs/xpl-slideout/readme.md +1 -0
  248. package/dist/docs/xpl-tabs/readme.md +1 -0
  249. package/dist/docs/xpl-toast/readme.md +55 -0
  250. package/dist/esm/apollo-core.js +4 -4
  251. package/dist/esm/{index-DhZas3eX.js → index-C_Z2nG0p.js} +137 -87
  252. package/dist/esm/loader.js +3 -3
  253. package/dist/esm/xpl-accordion.entry.js +5 -5
  254. package/dist/esm/xpl-application-shell.entry.js +4 -4
  255. package/dist/esm/{xpl-avatar_41.entry.js → xpl-avatar_47.entry.js} +2753 -229
  256. package/dist/esm/xpl-button-row.entry.js +4 -4
  257. package/dist/esm/xpl-calendar.entry.js +4 -4
  258. package/dist/esm/xpl-dynamic-table-cell.entry.js +5 -5
  259. package/dist/esm/xpl-dynamic-table-row.entry.js +5 -5
  260. package/dist/esm/xpl-dynamic-table.entry.js +4 -4
  261. package/dist/esm/xpl-grid-item.entry.js +4 -4
  262. package/dist/esm/xpl-grid.entry.js +4 -4
  263. package/dist/esm/xpl-large-card.entry.js +4 -4
  264. package/dist/esm/xpl-list.entry.js +4 -4
  265. package/dist/esm/xpl-main-nav.entry.js +4 -4
  266. package/dist/esm/xpl-table-header-cell.entry.js +3 -3
  267. package/dist/esm/xpl-table-header.entry.js +4 -4
  268. package/dist/esm/xpl-toggle.entry.js +6 -6
  269. package/dist/esm/xpl-toolbar.entry.js +5 -5
  270. package/dist/types/components/xpl-accordion/xpl-accordion.d.ts +1 -1
  271. package/dist/types/components/xpl-application-shell/application-shell.stories.d.ts +4 -0
  272. package/dist/types/components/xpl-application-shell/xpl-application-shell.d.ts +1 -1
  273. package/dist/types/components/xpl-avatar/avatar.stories.d.ts +4 -0
  274. package/dist/types/components/xpl-avatar/xpl-avatar.d.ts +1 -1
  275. package/dist/types/components/xpl-backdrop/backdrop.stories.d.ts +4 -0
  276. package/dist/types/components/xpl-backdrop/xpl-backdrop.d.ts +1 -1
  277. package/dist/types/components/xpl-badge/badge.stories.d.ts +66 -11
  278. package/dist/types/components/xpl-badge/xpl-badge.d.ts +9 -2
  279. package/dist/types/components/xpl-banner/banner.stories.d.ts +77 -0
  280. package/dist/types/components/xpl-banner/xpl-banner.d.ts +20 -0
  281. package/dist/types/components/xpl-breadcrumbs/breadcrumbs.stories.d.ts +4 -0
  282. package/dist/types/components/xpl-breadcrumbs/xpl-breadcrumb-item/xpl-breadcrumb-item.d.ts +1 -1
  283. package/dist/types/components/xpl-breadcrumbs/xpl-breadcrumbs/xpl-breadcrumbs.d.ts +1 -1
  284. package/dist/types/components/xpl-button/button.stories.d.ts +68 -30
  285. package/dist/types/components/xpl-button/xpl-button.d.ts +14 -8
  286. package/dist/types/components/xpl-button-row/xpl-button-row.d.ts +1 -1
  287. package/dist/types/components/xpl-calendar/calendar.stories.d.ts +4 -0
  288. package/dist/types/components/xpl-calendar/xpl-calendar.d.ts +1 -1
  289. package/dist/types/components/xpl-checkbox/checkbox.stories.d.ts +4 -0
  290. package/dist/types/components/xpl-checkbox/xpl-checkbox.d.ts +1 -1
  291. package/dist/types/components/xpl-choicelist/choicelist.stories.d.ts +4 -0
  292. package/dist/types/components/xpl-choicelist/xpl-choicelist.d.ts +1 -1
  293. package/dist/types/components/xpl-content-area/xpl-content-area.d.ts +1 -1
  294. package/dist/types/components/xpl-dashboard/xpl-dashboard.d.ts +1 -1
  295. package/dist/types/components/xpl-data-card/data-card.stories.d.ts +4 -0
  296. package/dist/types/components/xpl-data-card/xpl-data-card.d.ts +1 -1
  297. package/dist/types/components/xpl-divider/divider.stories.d.ts +4 -0
  298. package/dist/types/components/xpl-divider/xpl-divider.d.ts +1 -1
  299. package/dist/types/components/xpl-dropdown/dropdown-option.d.ts +1 -0
  300. package/dist/types/components/xpl-dropdown/dropdown.stories.d.ts +1 -1
  301. package/dist/types/components/xpl-dropdown/xpl-dropdown-group/xpl-dropdown-group.d.ts +1 -1
  302. package/dist/types/components/xpl-dropdown/xpl-dropdown-heading/xpl-dropdown-heading.d.ts +1 -1
  303. package/dist/types/components/xpl-dropdown/xpl-dropdown-option/xpl-dropdown-option.d.ts +3 -2
  304. package/dist/types/components/xpl-dropdown/xpl-dropdown.d.ts +11 -8
  305. package/dist/types/components/xpl-dynamic-table/xpl-dynamic-table.d.ts +1 -1
  306. package/dist/types/components/xpl-dynamic-table-cell/xpl-dynamic-table-cell.d.ts +1 -1
  307. package/dist/types/components/xpl-dynamic-table-row/xpl-dynamic-table-row.d.ts +1 -1
  308. package/dist/types/components/xpl-grid/xpl-grid.d.ts +1 -1
  309. package/dist/types/components/xpl-grid-item/xpl-grid-item.d.ts +1 -1
  310. package/dist/types/components/xpl-header-accordion/xpl-header-accordion.d.ts +1 -1
  311. package/dist/types/components/xpl-icon/xpl-icon.d.ts +1 -1
  312. package/dist/types/components/xpl-input/input.stories.d.ts +36 -7
  313. package/dist/types/components/xpl-input/xpl-input-color/xpl-input-color.d.ts +1 -1
  314. package/dist/types/components/xpl-input/xpl-input-date/xpl-input-date.d.ts +10 -3
  315. package/dist/types/components/xpl-input/xpl-input-file/xpl-input-file.d.ts +1 -1
  316. package/dist/types/components/xpl-input/xpl-input-phone/phone-country-data.d.ts +13 -0
  317. package/dist/types/components/xpl-input/xpl-input-phone/phone-format.d.ts +5 -0
  318. package/dist/types/components/xpl-input/xpl-input-phone/xpl-input-phone.d.ts +48 -0
  319. package/dist/types/components/xpl-input/xpl-input-time/xpl-input-time.d.ts +1 -1
  320. package/dist/types/components/xpl-input/xpl-input.d.ts +12 -2
  321. package/dist/types/components/xpl-large-card/large-card.stories.d.ts +4 -0
  322. package/dist/types/components/xpl-large-card/xpl-large-card.d.ts +1 -1
  323. package/dist/types/components/xpl-list/xpl-list.d.ts +1 -1
  324. package/dist/types/components/xpl-main-nav/xpl-main-nav.d.ts +1 -1
  325. package/dist/types/components/xpl-modal/modal.stories.d.ts +4 -0
  326. package/dist/types/components/xpl-modal/xpl-modal.d.ts +1 -1
  327. package/dist/types/components/xpl-nav-item/xpl-nav-item.d.ts +1 -1
  328. package/dist/types/components/xpl-pagination/pagination.stories.d.ts +4 -0
  329. package/dist/types/components/xpl-pagination/xpl-pagination.d.ts +1 -1
  330. package/dist/types/components/xpl-panel/panel.stories.d.ts +20 -0
  331. package/dist/types/components/xpl-panel/xpl-panel.d.ts +5 -0
  332. package/dist/types/components/xpl-popover/xpl-popover.d.ts +1 -1
  333. package/dist/types/components/xpl-progress/xpl-progress.d.ts +1 -1
  334. package/dist/types/components/xpl-progress-bar/progress-bar.stories.d.ts +73 -0
  335. package/dist/types/components/xpl-progress-bar/xpl-progress-bar.d.ts +15 -0
  336. package/dist/types/components/xpl-radio/xpl-radio.d.ts +1 -1
  337. package/dist/types/components/xpl-secondary-nav/xpl-secondary-nav.d.ts +1 -1
  338. package/dist/types/components/xpl-select/xpl-select.d.ts +1 -1
  339. package/dist/types/components/xpl-side-nav/side-nav.stories.d.ts +80 -0
  340. package/dist/types/components/xpl-side-nav/xpl-side-nav-item/xpl-side-nav-item.d.ts +20 -0
  341. package/dist/types/components/xpl-side-nav/xpl-side-nav.d.ts +4 -0
  342. package/dist/types/components/xpl-skeleton/xpl-skeleton.d.ts +1 -1
  343. package/dist/types/components/xpl-slideout/xpl-slideout.d.ts +1 -1
  344. package/dist/types/components/xpl-tab/xpl-tab.d.ts +1 -1
  345. package/dist/types/components/xpl-tab-panel/xpl-tab-panel.d.ts +1 -1
  346. package/dist/types/components/xpl-table/xpl-table.d.ts +1 -1
  347. package/dist/types/components/xpl-table-header/xpl-table-header.d.ts +1 -1
  348. package/dist/types/components/xpl-table-header-cell/xpl-table-header-cell.d.ts +1 -1
  349. package/dist/types/components/xpl-tabs/xpl-tabs.d.ts +2 -2
  350. package/dist/types/components/xpl-tag/xpl-tag.d.ts +1 -1
  351. package/dist/types/components/xpl-toast/xpl-toast.d.ts +1 -1
  352. package/dist/types/components/xpl-toggle/xpl-toggle.d.ts +1 -1
  353. package/dist/types/components/xpl-toolbar/xpl-toolbar.d.ts +1 -1
  354. package/dist/types/components/xpl-tooltip/xpl-tooltip.d.ts +1 -1
  355. package/dist/types/components/xpl-utility-bar/xpl-utility-bar.d.ts +1 -1
  356. package/dist/types/components.d.ts +1219 -178
  357. package/dist/types/stencil-public-runtime.d.ts +23 -2
  358. package/dist/types/utils/layout-ancestors.d.ts +2 -0
  359. package/package.json +41 -27
  360. package/dist/apollo-core/p-1c2e4034.entry.js +0 -1
  361. package/dist/apollo-core/p-3b5f8989.entry.js +0 -1
  362. package/dist/apollo-core/p-576ce90f.entry.js +0 -1
  363. package/dist/apollo-core/p-5ec45742.entry.js +0 -1
  364. package/dist/apollo-core/p-77f0fd4a.entry.js +0 -1
  365. package/dist/apollo-core/p-7b7db57a.entry.js +0 -1
  366. package/dist/apollo-core/p-7c22b842.entry.js +0 -1
  367. package/dist/apollo-core/p-7d245bf0.entry.js +0 -1
  368. package/dist/apollo-core/p-812bb0e4.entry.js +0 -1
  369. package/dist/apollo-core/p-845eef0d.entry.js +0 -1
  370. package/dist/apollo-core/p-9853028c.entry.js +0 -1
  371. package/dist/apollo-core/p-9d65ece7.entry.js +0 -1
  372. package/dist/apollo-core/p-DhZas3eX.js +0 -2
  373. package/dist/apollo-core/p-be292555.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  import { Host, h } from "@stencil/core";
2
2
  import { v4 as uuid } from "uuid";
3
- export class XplInput {
3
+ export class Input {
4
4
  constructor() {
5
5
  this.multiline = false;
6
6
  this.dateFormat = 'Y-m-d';
@@ -12,6 +12,8 @@ export class XplInput {
12
12
  this.hideTriggerOnSelect = false;
13
13
  this.hideFileNames = false;
14
14
  this.hideAcceptText = false;
15
+ this.defaultCountry = 'US';
16
+ this.isInternational = true;
15
17
  this.type = 'text';
16
18
  this.valueChanged = (event) => {
17
19
  const target = event.target;
@@ -19,6 +21,7 @@ export class XplInput {
19
21
  };
20
22
  this.characterCount = 0;
21
23
  this.passwordVisible = false;
24
+ this.hasPreSlotContent = false;
22
25
  this.handleFocus = (ev) => {
23
26
  this.focusEvent.emit(ev);
24
27
  };
@@ -32,16 +35,40 @@ export class XplInput {
32
35
  const { value } = ev.target;
33
36
  this.inputEvent.emit(value);
34
37
  };
38
+ this.syncPreSlotContent = () => {
39
+ const hasSlotted = this.hasDirectPreSlotChild();
40
+ if (hasSlotted !== this.hasPreSlotContent) {
41
+ this.hasPreSlotContent = hasSlotted;
42
+ }
43
+ };
35
44
  }
36
45
  updateCharacterCount() {
37
46
  this.characterCount = this.input.value.length;
38
47
  }
48
+ hasDirectPreSlotChild() {
49
+ return Array.from(this.el.children).some((child) => child.getAttribute('slot') === 'pre');
50
+ }
39
51
  componentWillLoad() {
40
52
  if (this._id === undefined || this._id === null || this._id === '')
41
53
  this._id = uuid();
42
54
  if (this.multiline && this.maxCharacterCount !== undefined) {
43
55
  this.characterCount = this.value !== undefined ? this.value.length : 0;
44
56
  }
57
+ if (!this.multiline) {
58
+ this.hasPreSlotContent = this.hasDirectPreSlotChild();
59
+ }
60
+ }
61
+ componentDidLoad() {
62
+ if (this.multiline)
63
+ return;
64
+ if (typeof MutationObserver !== 'undefined') {
65
+ this.preSlotObserver = new MutationObserver(this.syncPreSlotContent);
66
+ this.preSlotObserver.observe(this.el, { childList: true });
67
+ }
68
+ }
69
+ disconnectedCallback() {
70
+ var _a;
71
+ (_a = this.preSlotObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
45
72
  }
46
73
  renderInput() {
47
74
  switch (this.type) {
@@ -53,8 +80,13 @@ export class XplInput {
53
80
  return (h("xpl-input-date", { inputId: this._id, disabled: this.disabled, name: this.name, required: this.required, readonly: this.readonly, value: this.value, placeholder: this.placeholder, post: this.post, pre: this.pre, max: this.max, min: this.min, dateFormat: this.dateFormat, mode: this.mode }));
54
81
  case 'time':
55
82
  return (h("xpl-input-time", { inputId: this._id, disabled: this.disabled, name: this.name, required: this.required, readonly: this.readonly, value: this.value, placeholder: this.placeholder, max: this.max, min: this.min, step: this.step, mode: this.mode, timeFormat: this.timeFormat, allowCustomOption: this.allowCustomOption }));
83
+ case 'phone':
84
+ return (h("xpl-input-phone", { inputId: this._id, disabled: this.disabled, name: this.name, required: this.required, readonly: this.readonly, value: this.value, placeholder: this.placeholder, defaultCountry: this.defaultCountry, preferredCountries: this.preferredCountries, isInternational: this.isInternational }));
56
85
  default:
57
- return (h("div", { class: "xpl-input-wrapper" }, this.pre && !this.multiline && (h("label", { class: "xpl-input-pre", htmlFor: this._id }, 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) => {
86
+ return (h("div", { class: "xpl-input-wrapper" }, !this.multiline && (h("label", { class: {
87
+ 'xpl-input-pre': true,
88
+ 'xpl-input-pre--hidden': !this.pre && !this.hasPreSlotContent,
89
+ }, 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) => {
58
90
  this.input = el;
59
91
  }, 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) => {
60
92
  this.input = el;
@@ -78,13 +110,13 @@ export class XplInput {
78
110
  if (type === 'password' && this.passwordVisible) {
79
111
  type = 'text';
80
112
  }
81
- return (h(Host, { key: 'c682985a3d592f9f9902a16013a5d00f40ce5e44', class: {
113
+ return (h(Host, { key: 'c0d3b87b9dca0c4f75c15accb6542d270a43f3d3', class: {
82
114
  'xpl-input': true,
83
115
  'xpl-input--disabled': this.disabled,
84
116
  'xpl-input--error': hasError,
85
117
  'xpl-input--readonly': this.readonly,
86
118
  [`xpl-input--${this.type}`]: true,
87
- } }, this.label && (h("label", { key: '21d863221e85a255f3dc5e662139b7abc0e72907', class: "xpl-input-label", htmlFor: this._id }, this.label, this.description && h("small", { key: '25d078a667c8b9cbf4d1b5d1f412c3d0e736013a' }, this.description))), this.renderInput(), ((_a = this.error) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("label", { key: '7e13c1fc18496bdf50cdb2a239c113c182b83f18', class: "xpl-input-error", htmlFor: this._id }, h("xpl-icon", { key: '900d641cfcd94d9f6cc85ba34e1e211448c203df', icon: "alert-circle", size: 16 }), h("span", { key: '74f7868861f5c262038bee3de2faeecc46b2454d' }, this.error)))));
119
+ } }, this.label && (h("label", { key: '1842998b20424a952ff618ed15d611d59d2e9eba', class: "xpl-input-label", htmlFor: this._id }, this.label, this.description && h("small", { key: 'ccfe57e608f789d643d2219091922cf259971b12' }, this.description))), this.renderInput(), ((_a = this.error) === null || _a === void 0 ? void 0 : _a.length) > 0 && (h("label", { key: '3a3147f7e1be2d1f109a400baf005289bb37d60f', class: "xpl-input-error", htmlFor: this._id }, h("xpl-icon", { key: 'b4960e9243db0126ca5d6d3b3226c551927c2f39', icon: "alert-circle", size: 16 }), h("span", { key: 'd8f524d135f664c876ae83594e113967bb933cca' }, this.error)))));
88
120
  }
89
121
  static get is() { return "xpl-input"; }
90
122
  static get properties() {
@@ -631,12 +663,72 @@ export class XplInput {
631
663
  "reflect": false,
632
664
  "attribute": "hide-eye-dropper"
633
665
  },
666
+ "defaultCountry": {
667
+ "type": "string",
668
+ "mutable": false,
669
+ "complexType": {
670
+ "original": "string",
671
+ "resolved": "string",
672
+ "references": {}
673
+ },
674
+ "required": false,
675
+ "optional": true,
676
+ "docs": {
677
+ "tags": [],
678
+ "text": "Default country code (ISO 3166-1 alpha-2) when value is empty, e.g. \"US\".\n\nApplies to phone inputs."
679
+ },
680
+ "getter": false,
681
+ "setter": false,
682
+ "reflect": false,
683
+ "attribute": "default-country",
684
+ "defaultValue": "'US'"
685
+ },
686
+ "preferredCountries": {
687
+ "type": "unknown",
688
+ "mutable": false,
689
+ "complexType": {
690
+ "original": "string[]",
691
+ "resolved": "string[]",
692
+ "references": {}
693
+ },
694
+ "required": false,
695
+ "optional": true,
696
+ "docs": {
697
+ "tags": [],
698
+ "text": "Country codes to show at the top of the country list, e.g. [\"US\", \"CA\", \"GB\"].\n\nApplies to phone inputs."
699
+ },
700
+ "getter": false,
701
+ "setter": false
702
+ },
703
+ "isInternational": {
704
+ "type": "boolean",
705
+ "mutable": false,
706
+ "complexType": {
707
+ "original": "boolean",
708
+ "resolved": "boolean",
709
+ "references": {}
710
+ },
711
+ "required": false,
712
+ "optional": true,
713
+ "docs": {
714
+ "tags": [{
715
+ "name": "default",
716
+ "text": "true\n\nApplies to phone inputs."
717
+ }],
718
+ "text": "Enables international mode with country selector for phone inputs.\nWhen false, the phone input is locked to defaultCountry with no country picker."
719
+ },
720
+ "getter": false,
721
+ "setter": false,
722
+ "reflect": false,
723
+ "attribute": "is-international",
724
+ "defaultValue": "true"
725
+ },
634
726
  "type": {
635
727
  "type": "string",
636
728
  "mutable": false,
637
729
  "complexType": {
638
- "original": "'date' | 'time' | 'text' | 'number' | 'password' | 'file' | 'color'",
639
- "resolved": "\"color\" | \"date\" | \"file\" | \"number\" | \"password\" | \"text\" | \"time\"",
730
+ "original": "'date' | 'time' | 'text' | 'number' | 'password' | 'file' | 'color' | 'phone'",
731
+ "resolved": "\"color\" | \"date\" | \"file\" | \"number\" | \"password\" | \"phone\" | \"text\" | \"time\"",
640
732
  "references": {}
641
733
  },
642
734
  "required": false,
@@ -656,7 +748,8 @@ export class XplInput {
656
748
  static get states() {
657
749
  return {
658
750
  "characterCount": {},
659
- "passwordVisible": {}
751
+ "passwordVisible": {},
752
+ "hasPreSlotContent": {}
660
753
  };
661
754
  }
662
755
  static get events() {
@@ -732,4 +825,5 @@ export class XplInput {
732
825
  }
733
826
  }];
734
827
  }
828
+ static get elementRef() { return "el"; }
735
829
  }
@@ -124,4 +124,8 @@ LargeCard.parameters = {
124
124
  </section>
125
125
  `)(LargeCard.args),
126
126
  },
127
+ design: {
128
+ type: 'figma',
129
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=17661-38565&p=f&t=01tbTrRZyfvVafsA-11',
130
+ },
127
131
  };
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
- export class XplLargeCard {
2
+ export class LargeCard {
3
3
  componentDidLoad() {
4
4
  if (this.link) {
5
5
  const anchorEl = this.el.getElementsByTagName('a')[0] || this.el.getElementsByTagName('button')[0];
@@ -13,7 +13,7 @@ export class XplLargeCard {
13
13
  render() {
14
14
  const contentSlot = 'graph-content';
15
15
  const hasContentSlot = this.el.querySelector(`[slot="${contentSlot}"]`);
16
- return (h(Host, { key: '6c7928c9fae502001c8866eaa4b3f858a26eaead', role: "group", class: `xpl-large-card ${this.link ? 'xpl-large-card__link' : ''}`, tabindex: "0" }, h("dt", { key: 'df8e79e59236237ed54d640b544c7a19a850f89b', class: "xpl-large-card__header" }, h("header", { key: '6159de81cbcae7021f3a57fa3a800b241e548ca9' }, h("slot", { key: 'c2aac7c35f67430d0b09f1ad259c5121ef80e02f', name: "title" }, this.name), this.link && (h("span", { key: 'b292328bfb83340c848a793105df6892e6dd29e6', class: "xpl-data-card__header-arrow" }, h("xpl-icon", { key: 'e7bf907891716116cf050f7033d02d3822b56062', icon: "chevron-right", size: 16 })))), this.description && (h("div", { key: 'f9bee0304cd33f23a303c4562b0e48ac99f88483', class: "xpl-large-card__description" }, this.description))), h("dd", { key: 'e5800cc865b61e0a30a2b0dd7c432b630057281e', class: "xpl-large-card__body" }, hasContentSlot && h("slot", { key: 'a31d2a18c13340cc82a5b9c1af6963c024ec9a3a', name: contentSlot }))));
16
+ return (h(Host, { key: '02b42037a8e13fb68df0f40a07804bad533f690b', role: "group", class: `xpl-large-card ${this.link ? 'xpl-large-card__link' : ''}`, tabindex: "0" }, h("dt", { key: '27a8aa72e6e97d3918aa8a066c2528dab7466946', class: "xpl-large-card__header" }, h("header", { key: '9846eccca6988543cc671abe84f0a68e0dba06b0' }, h("slot", { key: '002ebff29d02550decb87f66609e941e6128c284', name: "title" }, this.name), this.link && (h("span", { key: 'a5c4dfe1c7149d95c5f4e6c291f61f75e49ce088', class: "xpl-data-card__header-arrow" }, h("xpl-icon", { key: 'a12c2c98867a189cb6bcabfcbbc6a08f2691c763', icon: "chevron-right", size: 16 })))), this.description && (h("div", { key: 'd7ca785313811f6fd962804964a90a161118d936', class: "xpl-large-card__description" }, this.description))), h("dd", { key: 'fe57a3a97ffd2d124e74e20c88077ffb68ea938a', class: "xpl-large-card__body" }, hasContentSlot && h("slot", { key: '2ebfb5e288ca2426d3085c97cc3a0bec81a72c46', name: contentSlot }))));
17
17
  }
18
18
  static get is() { return "xpl-large-card"; }
19
19
  static get properties() {
@@ -16,12 +16,12 @@ const ListItemCpt = ({ avatar, avatars, badges, href, title, subtext, metadata,
16
16
  }))))));
17
17
  return href ? (h("a", { class: "xpl-list-item", href: href }, inner)) : (h("div", { class: "xpl-list-item" }, inner));
18
18
  };
19
- export class XplList {
19
+ export class List {
20
20
  constructor() {
21
21
  this.items = [];
22
22
  }
23
23
  render() {
24
- return (h(Host, { key: '3eb471a9d1e64f3da012240b7ebb071efaad334d' }, this.items.map((item) => (h(ListItemCpt, Object.assign({}, item))))));
24
+ return (h(Host, { key: '441b4eae6f2837f20b58221819ca3c10a2fb3491' }, this.items.map((item) => (h(ListItemCpt, Object.assign({}, item))))));
25
25
  }
26
26
  static get is() { return "xpl-list"; }
27
27
  static get properties() {
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
- export class XplMainNav {
2
+ export class MainNav {
3
3
  constructor() {
4
4
  this.width = 'default';
5
5
  }
@@ -13,7 +13,7 @@ export class XplMainNav {
13
13
  this.navWidthHandler();
14
14
  }
15
15
  render() {
16
- return (h(Host, { key: '4bc985a6fc8533aac4a436bafb38a84e240d84d0', class: `xpl-main-nav xpl-main-nav--${this.width}`, "aria-label": "Sidebar" }, h("nav", { key: '37095d22b076a66f32f054dd1bc11487c6bd4927' }, h("header", { key: 'ed18404dbd24edf1306452d097e5be3efbcc57a0', "aria-label": "Sidebar Header" }, h("slot", { key: 'bfced098b786899701193dff672b30d2f5a1ad39', name: "logo" }), h("slot", { key: 'c3be7a15c652539240599743deb02c11f3d1bb45', name: "brand-name" })), h("div", { key: '0aee9797d8b12bb0fc825fedd255d7ba78b52968', class: "xpl-main-nav__main_section" }, h("slot", { key: 'b5772dce6f67b9ee753f1ea68ad12c46564ba3f7', name: "navigation" })), h("footer", { key: 'a2918a192ce73dacc796c3f3a09d180f735a8971', class: "xpl-main-nav__footer", "aria-label": "Sidebar Footer" }, h("slot", { key: 'f898b0f5cfd1d4424f573e74a38df5336506ca45', name: "footer" })))));
16
+ return (h(Host, { key: 'd8a79782b16a4e9f8ab3e6bf88c0314549aa501a', class: `xpl-main-nav xpl-main-nav--${this.width}`, "aria-label": "Sidebar" }, h("nav", { key: '64dcaed4426ad4f6590671425e7571df5a1cd1d9' }, h("header", { key: '7e97eee88a0cfff836aa40c9a2cba2a6dbfa59aa', "aria-label": "Sidebar Header" }, h("slot", { key: 'c281a9fbd5192cd0bda381ba52e55a9a1f6f063b', name: "logo" }), h("slot", { key: '988a49a475779b472cac084f20b7e73ed1528089', name: "brand-name" })), h("div", { key: '6fb1ff561b1136126e466ff86dfff9b124862eb2', class: "xpl-main-nav__main_section" }, h("slot", { key: 'bf5af4e8b47c8666f7014a8e63102601278c8038', name: "navigation" })), h("footer", { key: 'a836bd8d08638490d14ddd812cdc76b1dbe70392', class: "xpl-main-nav__footer", "aria-label": "Sidebar Footer" }, h("slot", { key: '05143d5082b2f8d699e23611df2b584c90a423c5', name: "footer" })))));
17
17
  }
18
18
  static get is() { return "xpl-main-nav"; }
19
19
  static get properties() {
@@ -84,4 +84,8 @@ Modal.args = {
84
84
  };
85
85
  Modal.parameters = {
86
86
  layout: 'centered',
87
+ design: {
88
+ type: 'figma',
89
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=12849-6374&p=f&t=01tbTrRZyfvVafsA-11',
90
+ },
87
91
  };
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
- export class XplModal {
2
+ export class Modal {
3
3
  constructor() {
4
4
  this.isOpen = false;
5
5
  this.size = 'medium';
@@ -44,7 +44,7 @@ export class XplModal {
44
44
  }
45
45
  }
46
46
  render() {
47
- return (h(Host, { key: '67a2c3914086a75280693b156c5148a5e86395d2', class: "xpl-modal" }, this.isOpen && h("xpl-backdrop", { key: 'e99270d95b4a2267d4fd9c7cbee25672b5f90b7d' }), h("dialog", { key: '3493394ff8f93a8a5fb00903d712dd956b886024', class: `xpl-modal__dialog xpl-modal-size--${this.size} xpl-modal--${this.isOpen ? 'is-open' : 'is-closed'}` }, h("div", { key: '66731b3fc2b562fd9f013de173dcf808b3f3ff1a', class: "xpl-modal__header" }, h("div", { key: 'b3a712444c7f3607b5f1bf968f46ac83305f6f1a', class: "xpl-modal__title" }, this.variant === 'warning' && (h("xpl-icon", { key: 'd96d5df9527b0b96fa793025af3dca9956c5a946', size: 20, icon: "alert-triangle", class: "xpl-modal__alert-icon" })), h("slot", { key: '3d30207ca82fffa6a7c7d7be42b240dc552ab01d', name: "title" }), h("xpl-button", { key: '34e0247f1f0de686233c95e236457dd170e3b050', type: "button", class: "xpl-modal__close-button", iconOnly: true, size: "sm", variant: "subtle", onClick: this.handleDialogClose }, h("xpl-icon", { key: 'd14026b3e17070767fef2d798d5e4406c011dc7d', icon: "x" }))), h("div", { key: 'cdacbf1e44ca7c8601ebcbfdce2ac5b6fb7d6489', class: "xpl-modal__subtitle" }, h("slot", { key: '2ade6726ee27396a0aa570ef2b0c88be0361eb01', name: "subtitle" }))), h("div", { key: 'f016a31264ee6874ddd19e9dcbde3b3f8c76d2ea', class: "xpl-modal__body" }, h("slot", { key: 'ea6016e3c5733a344f1f427ca07267917f66001e', name: "body" })), h("div", { key: '7e43b4317efd765152cdb3ea804e1fe9b0036bc4', class: "xpl-modal__footer" }, h("slot", { key: '410d2ce31eccc7d2bb0c48091b165de2f85f6986', name: "tertiary" }), h("slot", { key: 'd2d64c8203c8b942385c26adfe283af76c12afb3', name: "secondary" }), h("slot", { key: '3eb401ad94c36a2aa9f380508c438e5b473020d5', name: "primary" })))));
47
+ return (h(Host, { key: '54638721a2e8f0928bf9a3c2c4b40b3d4ad54db2', class: "xpl-modal" }, this.isOpen && h("xpl-backdrop", { key: '910ca79829054343c67906d7514a0d34b37832d0' }), h("dialog", { key: 'e284d70e8d190e64cb2b8df9a3ae327e7d2b0c00', class: `xpl-modal__dialog xpl-modal-size--${this.size} xpl-modal--${this.isOpen ? 'is-open' : 'is-closed'}` }, h("div", { key: '42f86b8a9ef1cec791aa8b10458db11130d74839', class: "xpl-modal__header" }, h("div", { key: '1884139c12c8d06d23454d4840a32fb8a464dd7b', class: "xpl-modal__title" }, this.variant === 'warning' && (h("xpl-icon", { key: '5211e56c773f787a7f0a78b45fcf64b2c6eeb44f', size: 20, icon: "alert-triangle", class: "xpl-modal__alert-icon" })), h("slot", { key: '64287ebfac58f8f4c7e0133fb7f1d12781d12126', name: "title" }), h("xpl-button", { key: 'd10c9ab2f4c9df1b7e830da76414849a1191beaf', type: "button", class: "xpl-modal__close-button", "icon-only": true, size: "sm", variant: "tertiary", onClick: this.handleDialogClose }, h("xpl-icon", { key: '55fc8bce80a2a65d522fb3d91b0689ffdb245ed0', icon: "x" }))), h("div", { key: '17474a7e0561833a34b8c21319943ff8bde044f3', class: "xpl-modal__subtitle" }, h("slot", { key: '5b482ed4b113f17906e4d1106426ae567c937a4e', name: "subtitle" }))), h("div", { key: '85e702a36d347ef2b941f5c590504433798020a0', class: "xpl-modal__body" }, h("slot", { key: 'a5b9cc60582a82126e000ec9b74aee9376e37253', name: "body" })), h("div", { key: 'cff53f9aec109cff62835a9e13d168e434baec73', class: "xpl-modal__footer" }, h("slot", { key: 'cafc86918fca71f085c1e8d9c88f244bd5230f78', name: "tertiary" }), h("slot", { key: 'a0fbe836ebe814c85571514bb53316429e1e65e1', name: "secondary" }), h("slot", { key: 'cbf2a03c2d032fc32d1b0ecd319df7383085cfd3', name: "primary" })))));
48
48
  }
49
49
  static get is() { return "xpl-modal"; }
50
50
  static get properties() {
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
- export class XplNavItem {
2
+ export class NavItem {
3
3
  constructor() {
4
4
  this.navControl = false;
5
5
  }
@@ -9,11 +9,11 @@ export class XplNavItem {
9
9
  }
10
10
  }
11
11
  render() {
12
- return (h(Host, { key: '8a047443ba48a7812f3804e5639cdd8408f9a647', class: "xpl-nav-item", role: "listitem", onClick: () => {
12
+ return (h(Host, { key: '7e852a7daf95bc3f9b4c87bad07504496b6a5863', class: "xpl-nav-item", role: "listitem", onClick: () => {
13
13
  if (this.navControl) {
14
14
  this.onNavToggle();
15
15
  }
16
- } }, h("slot", { key: '41012bd7a72ed7929deddb136ac5f2c6b30a4c1f', name: "link" }, h("slot", { key: 'ce1bb0b1957b5e614fa1ec65cc8973d42bd1dc32', name: "icon" }), h("slot", { key: 'd50d2dd931be394e039f1e07651e05e41231627e' }))));
16
+ } }, h("slot", { key: 'a88118864c2bdc808b7de975a530b77916b3750f', name: "link" }, h("slot", { key: '91d6a9c350e5de8c6221587795d43e1c315bb8cc', name: "icon" }), h("slot", { key: 'e37e0ee23226eb03200b12092e11a7ae47800abf' }))));
17
17
  }
18
18
  static get is() { return "xpl-nav-item"; }
19
19
  static get properties() {
@@ -32,4 +32,8 @@ Pagination.parameters = {
32
32
  'web-component': {
33
33
  render: Pagination(Pagination.args),
34
34
  },
35
+ design: {
36
+ type: 'figma',
37
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=9-1407&p=f&t=01tbTrRZyfvVafsA-11',
38
+ },
35
39
  };
@@ -1,5 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
- export class XplPagination {
2
+ export class Pagination {
3
3
  constructor() {
4
4
  this.totalPages = 1;
5
5
  this.withPageControl = false;
@@ -59,19 +59,19 @@ export class XplPagination {
59
59
  render() {
60
60
  const disablePrev = this.currentPage <= 1;
61
61
  const disableNext = this.currentPage >= this.totalPages;
62
- return (h(Host, { key: '15d277d40eff79d5fb48867b89370759eb9ca8c7', class: `xpl-pagination xpl-pagination__${this.withPageControl ? 'with' : 'no'}-page-control` }, this.withPageControl && (h("div", { key: '482bbca4e67c513f715573343f4f2d0f0a7281ee', class: "xpl-pagination__rows-per-page" }, h("label", { key: '5a6b3a0f06e6b37b3e6f17021417bac5ce866a69', class: "xpl-pagination__rows-label" }, "Rows per page:"), h("xpl-select", { key: '295db6e36fcf861ffd4f25550322552c6641084c', class: "xpl-pagination__rows-per-page-select", choices: this.rowsPerPageOptionsArray.map((option) => ({
62
+ return (h(Host, { key: 'a4b8f4ddd9b29563f64282e5728119e1552e5358', class: `xpl-pagination xpl-pagination__${this.withPageControl ? 'with' : 'no'}-page-control` }, this.withPageControl && (h("div", { key: '00c0d20d2bc57eebd82105ebafe08a5696496b16', class: "xpl-pagination__rows-per-page" }, h("label", { key: '1b28a926bbaa4b888217941bb0bf2d897d79dfbc', class: "xpl-pagination__rows-label" }, "Rows per page:"), h("xpl-select", { key: 'f8265a8d87986cfc0afbfcd9d783d767748a8957', class: "xpl-pagination__rows-per-page-select", choices: this.rowsPerPageOptionsArray.map((option) => ({
63
63
  label: option.toString(),
64
64
  value: option.toString(),
65
65
  isSelected: option === this.selectedRowsPerPage,
66
66
  })), ref: (el) => {
67
67
  this.rowsPerPageSelectRef = el;
68
- } }))), h("div", { key: '87c7b3e4bf11be1668512f325139899496f2dd7a', class: "xpl-pagination__pager" }, h("button", { key: 'c020001ed61d227b9febd71bb9e411b3eeead985', class: "xpl-pagination__pager-button xpl-pagination__pager-button-prev", disabled: disablePrev, onClick: this.handlePrevPage, "aria-label": "Previous Page", tabindex: "0" }, h("xpl-icon", { key: '3484457471eb692e3dc140b47f6d8bfd72899fe3', icon: "arrow-left", size: 20 })), h("xpl-select", { key: 'f0897900308b3015db171f6b60382dd537f9dd71', class: "xpl-pagination__page-select", choices: Array.from({ length: this.totalPages }, (_, index) => ({
68
+ } }))), h("div", { key: '1444d9005878427c44a573d4f6dd1d674b677228', class: "xpl-pagination__pager" }, h("button", { key: '08b98f8c1983543dad93c53d7c71d1aa71b4a45a', class: "xpl-pagination__pager-button xpl-pagination__pager-button-prev", disabled: disablePrev, onClick: this.handlePrevPage, "aria-label": "Previous Page", tabindex: "0" }, h("xpl-icon", { key: 'dcc26fcb7be5f525b4767d0860766f3a216a93e4', icon: "arrow-left", size: 20 })), h("xpl-select", { key: '7ba55fb451e26b31aba360876d8ee3b2bb423e19', class: "xpl-pagination__page-select", choices: Array.from({ length: this.totalPages }, (_, index) => ({
69
69
  label: `Page ${index + 1}`,
70
70
  value: (index + 1).toString(),
71
71
  isSelected: index + 1 === this.currentPage,
72
72
  })), "custom-display-value": true, ref: (el) => {
73
73
  this.pageSelectRef = el;
74
- } }, h("div", { key: '4c2184875c70ceac615c6efd05ef32f65d777152', slot: "custom-display-value" }, `${this.currentPage} of ${this.totalPages}`)), h("button", { key: '91c856b44bf3b752280b36f69a53d4c2ed97da19', class: "xpl-pagination__pager-button xpl-pagination__pager-button-next", disabled: disableNext, onClick: this.handleNextPage, "aria-label": "Next Page", tabindex: "0" }, h("xpl-icon", { key: '538a33cbddd6d4e26b782e0a3178018b61f0dec4', icon: "arrow-right", size: 20 })))));
74
+ } }, h("div", { key: '9c8adc967a098d954477d9032f6d22a0192948e0', slot: "custom-display-value" }, `${this.currentPage} of ${this.totalPages}`)), h("button", { key: '73b5bcbe7ce988c7f5f12ec4ea179bb879f39919', class: "xpl-pagination__pager-button xpl-pagination__pager-button-next", disabled: disableNext, onClick: this.handleNextPage, "aria-label": "Next Page", tabindex: "0" }, h("xpl-icon", { key: 'fb95a3807dc37c419195b2c88c2d8dc39b183880', icon: "arrow-right", size: 20 })))));
75
75
  }
76
76
  static get is() { return "xpl-pagination"; }
77
77
  static get properties() {
@@ -0,0 +1,51 @@
1
+ export default {
2
+ title: 'Components/Panel',
3
+ component: 'xpl-panel',
4
+ argTypes: {
5
+ accent: {
6
+ options: ['none', 'primary', 'secondary', 'positive', 'negative', 'highlight'],
7
+ control: {
8
+ type: 'select',
9
+ },
10
+ },
11
+ padding: {
12
+ options: ['default', 'tight', 'loose'],
13
+ control: {
14
+ type: 'select',
15
+ },
16
+ },
17
+ },
18
+ };
19
+ export const Panel = ({ accent, padding }) => `
20
+ <xpl-panel accent="${accent}" padding="${padding}" style="max-width: 800px">
21
+ <p style="margin: 0; color: var(--xpl-text-subdued); font-weight: var(--xpl-font-weight-normal); font-size: var(--xpl-font-size-body)">Panel content goes here. Compose other Apollo components within this slot.</p>
22
+ </xpl-panel>
23
+ `;
24
+ Panel.args = {
25
+ accent: 'none',
26
+ padding: 'default',
27
+ };
28
+ Panel.parameters = {
29
+ layout: 'padded',
30
+ 'web-component': {
31
+ render: Panel(Panel.args),
32
+ },
33
+ html: {
34
+ render: (({ accent, padding }) => {
35
+ const accentClass = accent !== 'none' ? ` xpl-panel--accent-${accent}` : '';
36
+ const accentBar = accent !== 'none' ? '<div class="xpl-panel__accent"></div>' : '';
37
+ return `
38
+ <div class="xpl-panel${accentClass} xpl-panel--padding-${padding}" style="max-width: 800px">
39
+ ${accentBar}
40
+ <div class="xpl-panel__content">
41
+ <p style="margin: 0; color: var(--xpl-text-subdued); font-weight: var(--xpl-font-weight-normal); font-size: var(--xpl-font-size-body)">Panel content goes here. Compose other Apollo components within this slot.</p>
42
+ </div>
43
+ </div>
44
+ `;
45
+ })(Panel.args),
46
+ },
47
+ design: {
48
+ type: 'figma',
49
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=1546-136120&p=f&t=SMeY3LnfDOiNmx1p-11',
50
+ },
51
+ };
@@ -0,0 +1,60 @@
1
+ import { Host, h } from "@stencil/core";
2
+ export class XplPanel {
3
+ constructor() {
4
+ this.accent = 'none';
5
+ this.padding = 'default';
6
+ }
7
+ render() {
8
+ const hasAccent = this.accent !== 'none';
9
+ return (h(Host, { key: 'a247ab70a6b062022146b88d95b382f879cb8ee7', class: {
10
+ 'xpl-panel': true,
11
+ [`xpl-panel--accent-${this.accent}`]: hasAccent,
12
+ [`xpl-panel--padding-${this.padding}`]: true,
13
+ } }, hasAccent && h("div", { key: '100febab4991a83e7463198331253fe7c7425a1d', class: "xpl-panel__accent" }), h("div", { key: 'c0758ab1d25675236ab15f052f45a29432021019', class: "xpl-panel__content" }, h("slot", { key: '948ec6423935f7ae825f78a89b456f72a66819a8' }))));
14
+ }
15
+ static get is() { return "xpl-panel"; }
16
+ static get properties() {
17
+ return {
18
+ "accent": {
19
+ "type": "string",
20
+ "mutable": false,
21
+ "complexType": {
22
+ "original": "'none' | 'primary' | 'secondary' | 'positive' | 'negative' | 'highlight'",
23
+ "resolved": "\"highlight\" | \"negative\" | \"none\" | \"positive\" | \"primary\" | \"secondary\"",
24
+ "references": {}
25
+ },
26
+ "required": false,
27
+ "optional": false,
28
+ "docs": {
29
+ "tags": [],
30
+ "text": "Color accent bar displayed at the top of the panel.\n\n- `none` \u2013 no accent (default)\n- `primary` \u2013 brand primary color\n- `secondary` \u2013 brand secondary color\n- `positive` \u2013 positive / success color\n- `negative` \u2013 negative / error color\n- `highlight` \u2013 highlight / warning color"
31
+ },
32
+ "getter": false,
33
+ "setter": false,
34
+ "reflect": false,
35
+ "attribute": "accent",
36
+ "defaultValue": "'none'"
37
+ },
38
+ "padding": {
39
+ "type": "string",
40
+ "mutable": false,
41
+ "complexType": {
42
+ "original": "'default' | 'tight' | 'loose'",
43
+ "resolved": "\"default\" | \"loose\" | \"tight\"",
44
+ "references": {}
45
+ },
46
+ "required": false,
47
+ "optional": false,
48
+ "docs": {
49
+ "tags": [],
50
+ "text": "Padding density applied to the content area.\nResponsive: scales down at tablet and mobile breakpoints.\n\n- `default` \u2013 24 px desktop / 16 px tablet+mobile\n- `tight` \u2013 16 px desktop / 8 px tablet+mobile\n- `loose` \u2013 40 px desktop / 32 px tablet / 24 px mobile"
51
+ },
52
+ "getter": false,
53
+ "setter": false,
54
+ "reflect": false,
55
+ "attribute": "padding",
56
+ "defaultValue": "'default'"
57
+ }
58
+ };
59
+ }
60
+ }
@@ -160,5 +160,9 @@ export const LargerContent = ({ isOpen = true, position }) => {
160
160
  </div>
161
161
  `)(comp.args),
162
162
  },
163
+ design: {
164
+ type: 'figma',
165
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=15240-61430&p=f&t=01tbTrRZyfvVafsA-11',
166
+ },
163
167
  };
164
168
  });
@@ -1,6 +1,6 @@
1
1
  import { h, Host, } from "@stencil/core";
2
2
  import throttle from "lodash.throttle";
3
- export class XplPopover {
3
+ export class Popover {
4
4
  constructor() {
5
5
  this.isOpen = false;
6
6
  this.disabled = false;
@@ -206,16 +206,16 @@ export class XplPopover {
206
206
  });
207
207
  }
208
208
  render() {
209
- return (h(Host, { key: 'cf6c4f6b028bfdb9d08f6c8ad2b433c38c1a6f9f' }, h("div", { key: '778f9a2f3a5626b19f5446c56d89f9bb6b31ca36', class: {
209
+ return (h(Host, { key: '5ed2eca6cac15c5009d0a5440f4a1f1e4dce8260' }, h("div", { key: 'f396004504407a1215e76187be06a27e56bd4a49', class: {
210
210
  'xpl-popover': true,
211
211
  [`xpl-popover--${this.actualPosition}`]: true,
212
212
  'xpl-popover--is-open': this.isOpenState,
213
- } }, h("span", { key: '762401eb1e8d30644dfb55e10f4f5f56abff648f', role: "button", tabindex: "0", "aria-haspopup": "dialog", "aria-expanded": this.isOpenState ? 'true' : 'false', onClick: this.togglePopover, ref: (el) => {
213
+ } }, h("span", { key: '23ac1ebf38617b2a9bd91a1ccfe37d212191f76c', role: "button", tabindex: "0", "aria-haspopup": "dialog", "aria-expanded": this.isOpenState ? 'true' : 'false', onClick: this.togglePopover, ref: (el) => {
214
214
  this.triggerRef = el;
215
- } }, h("slot", { key: 'c29166383d024f24d6883ff0d4ea85380f849712', name: "trigger" })), this.display === 'arrow' && (h("div", { key: 'ef7eb85bc764ab403fc4b069a50606da16e3fcdc', class: "xpl-popover__arrow" }, h("svg", { key: '32bc234f1dbc9b07b3b3e2b69e5be222bab02a26', width: "17", height: "14", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'd34ec2d2b3e67459981f29ce21810f1fb6b7ba45', d: "M0 5h15l-7.5 7.5L0 5Z", fill: "white", stroke: "none", class: "arrow-fill" }), h("path", { key: 'f251a3f748c9d4eb5d84d6416dd0121b3365000b', d: "M0 5 L7.5 12.5 L15 5", fill: "none", stroke: "black", "stroke-width": "1", class: "arrow-stroke" })))), h("div", { key: '02632fb4c284db5eabce50f4c27079ba37e10204', class: {
215
+ } }, h("slot", { key: 'ee427ff33db360b11719a886ad724a2bceb64eed', name: "trigger" })), this.display === 'arrow' && (h("div", { key: '27fb57c24abdf3eecb6aae0a96f9b6256ee593a3', class: "xpl-popover__arrow" }, h("svg", { key: '3456fa0239edafe272047446d3aed0ebd4490275', width: "17", height: "14", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'e5de57c7cbf5301548af4eb5f79d14acc459d0a8', d: "M0 5h15l-7.5 7.5L0 5Z", fill: "white", stroke: "none", class: "arrow-fill" }), h("path", { key: '784f569c0baf0f6fdfad6bda1a36e6ee43293dce', d: "M0 5 L7.5 12.5 L15 5", fill: "none", stroke: "black", "stroke-width": "1", class: "arrow-stroke" })))), h("div", { key: '6ca95b76529ddfa681d4b11a30dceaaa4a3a10c4', class: {
216
216
  'xpl-popover__content': true,
217
217
  [`xpl-popover__content--display-${this.display}`]: true,
218
- }, ref: (el) => (this.contentRef = el) }, h("slot", { key: '770df2750d5d4875d38eb52bb26788095ce7292d' })))));
218
+ }, ref: (el) => (this.contentRef = el) }, h("slot", { key: '75c6768b7e10ac698d54bdc30d052a6c0e98bd75' })))));
219
219
  }
220
220
  static get is() { return "xpl-popover"; }
221
221
  static get properties() {
@@ -1,5 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
- export class XplProgress {
2
+ export class Progress {
3
3
  constructor() {
4
4
  this.currentStep = 0;
5
5
  }
@@ -13,7 +13,7 @@ export class XplProgress {
13
13
  render() {
14
14
  const className = 'xpl-progress';
15
15
  const steps = this.steps || [];
16
- return (h(Host, { key: '573fca634dcf64084cd74f243a52a978c55478d5', class: className }, h("div", { key: 'e0bb02b55c6676bed131397188ffa0074dba71ef', class: "xpl-progress-container" }, steps.map((step, index) => (h("div", { class: `xpl-progress-step ${this.getCircleClass(index)}` }, h("div", { class: "xpl-progress-step-content" }, h("div", { class: "xpl-progress-step-circle" }, index + 1), h("div", { class: "xpl-progress-step-text" }, step))))))));
16
+ return (h(Host, { key: '13245e4ec2137ea46a325fb6d8d70c41be0307f1', class: className }, h("div", { key: 'd88e32dd9227ee388a7a6688863ce0a44354701c', class: "xpl-progress-container" }, steps.map((step, index) => (h("div", { class: `xpl-progress-step ${this.getCircleClass(index)}` }, h("div", { class: "xpl-progress-step-content" }, h("div", { class: "xpl-progress-step-circle" }, index + 1), h("div", { class: "xpl-progress-step-text" }, step))))))));
17
17
  }
18
18
  static get is() { return "xpl-progress"; }
19
19
  static get properties() {
@@ -0,0 +1,96 @@
1
+ export default {
2
+ title: 'Components/Progress Bar',
3
+ argTypes: {
4
+ label: {
5
+ type: { name: 'string', required: false },
6
+ description: 'The label text displayed above the progress bar',
7
+ },
8
+ helperText: {
9
+ type: { name: 'string', required: false },
10
+ description: 'The helper text displayed below the progress bar (recommended for error state)',
11
+ },
12
+ max: {
13
+ control: { type: 'number' },
14
+ description: 'The maximum value of the progress (mirrors native <progress> max attribute)',
15
+ },
16
+ value: {
17
+ control: { type: 'range', min: 0, max: 100, step: 1 },
18
+ description: 'The current value of the progress (mirrors native <progress> value attribute). Not used for indeterminate variant.',
19
+ },
20
+ size: {
21
+ options: ['sm', 'lg'],
22
+ control: { type: 'select' },
23
+ description: 'The size of the progress bar height: sm = 4px, lg = 6px',
24
+ },
25
+ variant: {
26
+ options: ['default', 'success', 'error', 'indeterminate'],
27
+ control: { type: 'select' },
28
+ description: 'The visual variant of the progress bar',
29
+ },
30
+ },
31
+ };
32
+ export const ProgressBar = (args) => {
33
+ let attrs = '';
34
+ if (args.label)
35
+ attrs += ` label="${args.label}"`;
36
+ if (args.helperText)
37
+ attrs += ` helper-text="${args.helperText}"`;
38
+ if (args.max !== 100)
39
+ attrs += ` max="${args.max}"`;
40
+ if (args.value !== undefined && args.variant !== 'indeterminate')
41
+ attrs += ` value="${args.value}"`;
42
+ if (args.size !== 'lg')
43
+ attrs += ` size="${args.size}"`;
44
+ if (args.variant !== 'default')
45
+ attrs += ` variant="${args.variant}"`;
46
+ return `
47
+ <div style="display: flex; flex-direction: column; gap: var(--xpl-space-48); width: 50vw;">
48
+ <xpl-progress-bar${attrs}></xpl-progress-bar>
49
+ </div>
50
+ `;
51
+ };
52
+ ProgressBar.args = {
53
+ label: 'Uploading file...',
54
+ helperText: '2.4 MB of 5 MB',
55
+ max: 100,
56
+ value: 45,
57
+ size: 'lg',
58
+ variant: 'default',
59
+ };
60
+ ProgressBar.parameters = {
61
+ layout: 'centered',
62
+ 'web-component': {
63
+ render: ProgressBar(ProgressBar.args),
64
+ },
65
+ html: {
66
+ render: (({ label, helperText, max, value, size, variant }) => {
67
+ const labelHtml = label
68
+ ? `<div class="xpl-progress-bar__header"><div class="xpl-progress-bar__label">${label}</div></div>`
69
+ : '';
70
+ const helperHtml = helperText
71
+ ? `<div class="xpl-progress-bar__helper">${helperText}</div>`
72
+ : '';
73
+ const maxValue = max !== null && max !== void 0 ? max : 100;
74
+ const currentValue = variant !== 'indeterminate' && value !== undefined ? value : maxValue;
75
+ const className = `xpl-progress-bar xpl-progress-bar--${size} xpl-progress-bar--${variant}`;
76
+ const progressHtml = variant === 'indeterminate'
77
+ ? `<div class="xpl-progress-bar__track xpl-progress-bar__track--indeterminate" role="progressbar" aria-label="${label || 'Progress'}"><div class="xpl-progress-bar__indeterminate"></div></div>`
78
+ : `<progress class="xpl-progress-bar__progress" value="${currentValue}" max="${maxValue}" aria-label="${label || 'Progress'}"></progress>`;
79
+ return `
80
+ <div class="${className}">
81
+ <div class="xpl-progress-bar__wrapper">
82
+ ${labelHtml}
83
+ <div class="xpl-progress-bar__row">
84
+ ${progressHtml}
85
+ </div>
86
+ ${helperHtml}
87
+ </div>
88
+ </div>
89
+ `;
90
+ })(ProgressBar.args),
91
+ },
92
+ design: {
93
+ type: 'figma',
94
+ url: 'https://www.figma.com/design/MjjYek73MFnHmVNdm45Sd1/Apollo-Web?node-id=12841-9237',
95
+ },
96
+ };